Android WebView使用总结

Android WebView使用总结

1.shouldOverrideUrlLoading

Android系统在API21(也就是Android5.0)时更新了shouldOverrideUrlLoading方法,原
public boolean shouldOverrideUrlLoading(WebView view, String url)被标记为过时,google新增了
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request)方法来代替。
从源码来看,

public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        return shouldOverrideUrlLoading(view, request.getUrl().toString());
    }

新方法内部仍然调用了原旧方法,不过比之前的方法更为强大。当我们更新targetSdkVersion以适配新系统特性时,为保证兼容性,在设置
setWebViewClient建议两个方法均调用,可如下进行:

 webView.setWebViewClient(new WebViewClient() {
                        @Override
                        public boolean shouldOverrideUrlLoading(WebView view, String url) {
                            //代码逻辑
                            return true;
                        }

                        @Override
                        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
                            //代码逻辑                               
                            }
                            return true;
                        }
                    });

2.加载本地资源

        try {
            StringBuilder content = new StringBuilder();
            InputStream stream = this.getAssets().open("demo.html");
            BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
            String line;
            while((line = reader.readLine()) != null)
            {
                content.append(line);
                content.append('\n');
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        String html = content.toString();
        webView.loadDataWithBaseURL("file:///android_asset/",html,"text/html","utf-8",null);

3.支持JS

webView.getSettings().setJavaScriptEnabled(true);//支持JS
webView.addJavascriptInterface(jsObject,"jsObjectName");//添加JS接口

4.加载播放H5本地视频

自动播放

webView.setWebViewClient(new WebViewClient(){
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                webView.loadUrl("javascript:(function() { var videos = document.getElementsByTagName('video'); for(var i=0;i<videos.length;i++){videos[i].play();}})()");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值