您的位置:首页 > 移动开发

Android WebView常用整理

2016-08-24 13:19 309 查看
整理一些关于 WebView 常用的知识点

常用方式:

mWebView= (WebView)findViewById(R.id.webview);

mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl(mWebUrl);
mWebView.setWebViewClient(new WebViewClient() {

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);// 在当前的webview中跳转到新的url
return true;
}
});


WebView 打开本地缓存 , 使用 localStorage 功能

mWebView.getSettings().setJavaScriptEnabled(true);

mWebView.getSettings().setDomStorageEnabled(true);
// Set cache size to 8 mb by default. should be more than enough
mWebView.getSettings().setAppCacheMaxSize(1024*1024*8);
// This next one is crazy. It's the DEFAULT location for your app's cache
// But it didn't work for me without this line.
// UPDATE: no hardcoded path. Thanks to Kevin Hawkins
String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();
mWebView.getSettings().setAppCachePath(appCachePath);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setAppCacheEnabled(true);

mWebView.loadUrl(url);
mWebView.setWebViewClient(new WebViewClient() {

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);// 在当前的webview中跳转到新的url
return true;
}
});


webView 与本地交互

在 webView 的基本配置下,通过 js 调用本地方法。

本地代码配置如下:

// 第一个参数是本地定义的提供给 js 调用的类,第二个参数为 js 端调用的对象引用。
mWebView.addJavascriptInterface(new TestObject(), "demo");
// 内部类
private final class TestObject{

// 4.x 版本以后需要在方法上面添加该注解
@JavascriptInterface
public void clickOnAndroid() {
Log.i("","click on Android ");
}
}


h5 调用配置:

<a onClick="window.demo.clickOnAndroid()">test</a>


本地调用 h5 的 js 方法:

// javascript: 后面跟 js 的方法名。
mWebView.loadUrl("javascript:alertJsTest()");


注意一点,在本地和 js 交互时要注意 方法名,参数,以及参数类型都要保持一致。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: