关于WebView的使用

一、在加载网页时出现android.content.ActivityNotFoundException

        通常我们在Activity中加载网页的时候是直接调用webview.load(url); ,但是当在当前的连接中要跳进另一个链接地址中不带有http或者https时,安卓就会显示一个错误的网页,如图1-1所示:

图 1-1

        所以为了针对这一问题,我们在WebView中设置了一个过滤,如果不包含http或者https那么久加载系统自带的浏览器去加载这个路径,代码如下:

wv_main.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if( url.startsWith("http:") || url.startsWith("https:") ) {
            return false;
        }
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
        startActivity(intent);
        return true;
    }
});
        但是问题来了,结果是这个链接显示的网页确实成功了,却开启了系统自带的浏览器加载,而且加载出来的是这样的结果:


        所以针对这一情况,我最终选择不启用自带的浏览器直接去加载,结果就正确显示了,代码如下:

        wv_main = (WebView) findViewById(R.id.wv_main);
        WebSettings webSettings = wv_main.getSettings();
        webSettings.setJavaScriptEnabled(true);
        wv_main.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                if( url.startsWith("http:") || url.startsWith("https:") ) {
                    return false;
                }
//                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
//                intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
//                startActivity(intent);
                return true;
            }
        });
        wv_main.loadUrl("http://www.baidu.com");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值