首页 > 代码库 > 关于用WebView或手机浏览器打开连接问题
关于用WebView或手机浏览器打开连接问题
1.通常情况下 大家可能都想使用WebView打开网页内部链接而不想再调用手机浏览器,我们可以通过以下两种方法实现:
(1)为WebView设置一个WebViewClient,并重写shouldOverrideUrlLoading(WebView view, String url)方法。
[java] view plain copy
- class MyWebViewClient extends WebViewClient {
- @Override
- public boolean shouldOverrideUrlLoading(WebView view, String url){
- // 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边
- view.loadUrl(url);
- return true;
- }
- }
(2)为WebView设置一个WebViewClient,并重写onPageStarted(WebView view, String url, Bitmap favicon)方法。
[java] view plain copy
- class MyWebViewClient extends WebViewClient {
- @Override
- public void onPageStarted(WebView view, String url, Bitmap favicon) {
- // TODO Auto-generated method stub
- super.onPageStarted(view, url, favicon);
- }
- }
这两种方法其实都是让参数view(WebView)加载参数url从而避免手机浏览器加载url,第一种方式更常用一些。
2.但有些情况下 我们可能想用WebView打开大部分链接,而有些链接我们希望调用手机浏览器来打开,我最近的一个项目中就有这样的需求。这样其实也很简单,我们只需要对上面第一种方法加以修改即可。
[java] view plain copy
- class MyWebViewClient extends WebViewClient {
- @Override
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
- // 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边
- if (openWithWevView(url)) {
- view.loadUrl(url);
- }else{
- Uri uri = Uri.parse(url); //url为你要链接的地址
- Intent intent =new Intent(Intent.ACTION_VIEW, uri);
- startActivity(intent);
- }
- return true;
- }
其中openWithWevView(url)是自己写的一个方法,用来判断是否用WevView打开该链接。
关于用WebView或手机浏览器打开连接问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。