Android WebView 使用介绍
来源:互联网 发布:短域名源码 编辑:程序博客网 时间:2024/06/05 16:09
接下来打算写写目前对WebView的了解,以及它相关的使用,介绍几个重要的方法,和使用中应该注意的事宜。
内容简介:
怎么new
WebView
(搞笑了、、、)!webChromeClient
&&webViewClient
的重要方法- url加载处理
- 进度条设置
- tittle设置
- 错误处理
- 全屏设置
Android
&JS
的互调WebView
的后退处理
布局时的注意事项:
It is recommended to set the WebView layout height to a fixed value or to MATCH_PARENT instead of using WRAP_CONTENT. When using MATCH_PARENT for the height none of the WebView’s parents should use a WRAP_CONTENT layout height since that could result in incorrect sizing of the views.
意思就是建议我们要使用match_parent的布局,并且match_parent时,它的父布局不要是wrap_content!
1.创建一个
WebView
,加载一个url
:WebView myWebView = (WebView) findViewById(R.id.webview);myWebView.loadUrl("http://www.lovejjfg.com");
这样的话,其实就有效果了!就是纯粹的加载webPage
的效果!
但是请注意非常重要的一点:添加网络权限
<uses-permission android:name="android.permission.INTERNET" />
2.
WebView
中重要的两个Client
:WebChromeClient webChromeClient = new WebChromeClient() { //加载进度改变的回调 @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); if (newProgress == 100) { mPb.setVisibility(View.GONE); } else { mPb.setProgress(newProgress); } } //获取tittle @Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); } //这三个方法在WebView需要全屏播放是需要复写。。。。 @Override public void onShowCustomView(View view, CustomViewCallback callback) { super.onShowCustomView(view, callback); } @Override public void onHideCustomView() { super.onHideCustomView(); } @Override public View getVideoLoadingProgressView() { return super.getVideoLoadingProgressView(); } }; WebViewClient webViewClient = new WebViewClient() { //网页加载完成回调 @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); } public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { //页面加载错误的时候回调 } //我们是否处理url加载 @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { mTopSlidWebView.loadUrl(url); return true; } //webView开始加载 @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); mPb.setVisibility(View.VISIBLE); } };
shouldOverrideUrlLoading()
的方法其实很重要,如果我们需要处理url,就需要返回true,一般的写法就是在这里更具url的处理逻辑:
if (Uri.parse(url).getHost().equals("www.lovejfg.com")) { view.loadUrl(url); return true; }else{ //doSomething..}
- 3.然后说说
webView
的Js
和本地互调:
WebView
默认是不支持JavaScript
的,所以要使用的话,第一步肯定是打开 开关 :
WebView myWebView = (WebView) findViewById(R.id.webview);WebSettings webSettings = myWebView.getSettings();webSettings.setJavaScriptEnabled(true);
好了,这样就可以使用js了!
mWebView.addJavascriptInterface(new JsCallback() { @JavascriptInterface public void onJsCallback() { Toast.makeText(getApplicationContext(), "XXXXXXXXX", Toast.LENGTH_LONG).show(); } }, "demo");
定义接口:
public interface JsCallback { @JavascriptInterface public void onJsCallback();}
demo
是你对应的调用的文件名称!
这里需要注意:如果你的版本是API17或者更高,那么在js的回调方法上面必须添加@JavascriptInterface
的注解,不然的话,这个方法将无法回调!
demo文件的相关代码(可以直接copy):
/* This function is invoked by the activity */
function showAlert() {
alert("Android调用Js啦");
}
咳咳,这里需要注意onclick方法的写法:window.demo.onJsCallback()
,以window
开头,后面接你html
的名称,最后这个 onJsCallback()
其实就是你在接口中定义的方法!!
点击第一个,是
js
调用Android
的本地方法,你完全可以在这里打电话,开页面,发广播。。。点击第二个,是调用js的
showAlert()
的方法。
4.WebView的后退处理:
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { // 检测是back并且WebView可以后退 if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) { myWebView.goBack(); return true; }return super.onKeyDown(keyCode, event);}
OK!更多的请参考—>官方文档(其实我也是搬运工啦!!)
其实还有错误处理没有讲解,下一篇来写一写吧!
- android WebView 使用介绍
- Android WebView 使用介绍
- android webview 使用详细介绍
- Android WebView使用简单介绍
- Android WebView控件使用介绍
- Android WebView系列文章1-关于WebView基本使用介绍
- Android WebView 详细介绍
- Android WebView 介绍
- Android—WebView介绍
- Android WebView介绍
- Android WebView介绍
- WebView使用简单介绍
- WebView使用介绍
- Android中Webview使用注意事项及相关方法介绍
- WebView--- Android WebView使用总结
- android WebView介绍(一)
- android WebView加载html5介绍
- android WebView缓存机制介绍
- iOS开发指南:从零基础到App Store上架(第2版)——互动出版网
- 2012年5月16日,Google发布“知识图谱(Knowledge Graph)”
- dubbo管理控制台
- 欢迎使用CSDN-markdown编辑器
- python global语句
- Android WebView 使用介绍
- Android开发工具全面转向Android Studio(2)——AS project/module的CRUD
- Spring Security一启动就会包含这样一批负责各种安全管理的过滤器
- 常用的js方法(手机类型,汉字计数,url参数)
- winrar压缩文件
- ubuntu下的快捷键
- eclipse发布程序到Tomcat class文件丢失
- 疯狂Java程序员16堂课---第8课:异常捕捉的陷
- 在EditText中设置hint的大小和颜色,光标粗细和颜色...(二)