android开发:WebView基本使用

       最近闲 了下来,决定对自己以前所学的用到的东西做个整理,以前总是用到一些东西,只是去查,去记录到自己的云笔记中。时间久了, 下次碰到了依然记不太清楚,如此反复。这段时间用WebView比较多,就先从它说起吧!

现在app都内置Web网页,大的电商(淘宝,京东等),主要是用到的就是android的WebView组件,那就来介绍它的具体使用吧。

1. 打开网页时不调用系统浏览器, 而是在本WebView中显示:

mWebView.setWebViewClient(new WebViewClient(){

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

           view.loadUrl(url);

           return true;

          }

});

2. 通过java代码调用javascript

WebSettings webSettings =mWebView .getSettings();

webSettings.setJavaScriptEnabled(true);

mWebView.addJavascriptInterface(newObject() {publicvoidclickOnAndroid() {

mHandler.post(newRunnable() {publicvoidrun() {

webview.loadUrl("javascript:call()");

}

});

}

},"test");

3. 按返回键时, 不退出程序而是返回上一浏览页面

publicbooleanonKeyDown(intkeyCode, KeyEvent event) {if((keyCode == KeyEvent.KEYCODE_BACK) &&mWebView.canGoBack()) {

           mWebView.goBack();returntrue;

}

     returnsuper.onKeyDown(keyCode, event);

}

4.WebSetting的常用设置

WebSettings webSettings =mWebView .getSettings();

webSettings.setUseWideViewPort(true);//设置此属性,可任意比例缩放webSettings.setLoadWithOverviewMode(true);

setJavaScriptEnabled(true);//支持js

setPluginsEnabled(true);//支持插件

setUseWideViewPort(false);//将图片调整到适合webview的大小

setSupportZoom(true);//支持缩放

setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);//支持内容重新布局

supportMultipleWindows();//多窗口

setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);//关闭webview中缓存

setAllowFileAccess(true);//设置可以访问文件

setNeedInitialFocus(true); //当webview调用requestFocus时为webview设置节点

webview webSettings.setBuiltInZoomControls(true);//设置支持缩放

setJavaScriptCanOpenWindowsAutomatically(true);//支持通过JS打开新窗口

setLoadWithOverviewMode(true); // 缩放至屏幕的大小

setLoadsImagesAutomatically(true);//支持自动加载图片

遇到一些坑和注意事项:

1.退出WebView,仍然有声音播放

解决办法,在activity 的ondestory方法中先让 WebView 加载null内容,然后移除,销毁webview

2.混淆代码后,调用js代码没反应

解决办法:混淆配置文件中keep如下

-keepattributes *Annotation*

-keepattributes *JavascriptInterface*

你可能感兴趣的:(android开发:WebView基本使用)