开发者社区> 问答> 正文

webview 加载链接的问题?报错


我在webview内嵌了网页,可以打开网页,然后在这个打开的网页上,再点击一个链接,就跳转成这样了,有遇到过
 
吗?
我后来发现,问题就在这里:重新WebViewClient类的方法,出现这样的问题的
@Override   
public boolean shouldOverrideUrlLoading(WebView view, String url){  
   
// 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边  
//view.loadUrl(url);  
//return true;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
 return true;   
}
如果这个方法中,采用蓝色标注的代码,可以正常访问网址,但是,貌似是跳到浏览器中了
如果采用红色标注的代码,就会报错,即打不开这个网址,请问下,我该怎么办?
 
 
 


展开
收起
爱吃鱼的程序员 2020-06-14 16:18:43 759 0
1 条回答
写回答
取消 提交回答
  • 加上下拉刷新。 2.在WebView的setWebViewClient中加入重写方法

    //错误的处理方式需要分开两种,原因:在Android6以上的机器上,网页中的任意一个资源获取不到(比如字体),网页就很可能显示自定义的错误界面

    // 旧版本,会在新版本中也可能被调用,所以加上一个判断,防止重复显示 @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { super.onReceivedError(view, errorCode, description, failingUrl); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){ return; } // 在这里显示自定义错误页 emptyView.setVisibility(View.VISIBLE); }

    // 新版本,只会在Android6及以上调用 @TargetApi(Build.VERSION_CODES.M) @Override public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { super.onReceivedError(view, request, error); if (request.isForMainFrame()){ // 在这里显示自定义错误页 emptyView.setVisibility(View.VISIBLE); } }

    2021-02-21 00:09:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载