Android WebView常用整理

整理一些关于 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 交互时要注意 方法名,参数,以及参数类型都要保持一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值