首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安卓开发_关于WebView使用链接时调用浏览器显示的问题

安卓开发_关于WebView使用链接时调用浏览器显示的问题

作者头像
听着music睡
发布2018-05-18 12:59:11
1.3K0
发布2018-05-18 12:59:11
举报
文章被收录于专栏:Android干货Android干货

在我们的实际开发中,我们用到WebView就是为了在自己的APP中的某个部分来显示指定网页的效果。

但是在学习的过程中,我发现一个问题:

有的网页使用WebView控件显示出来以后,再点击网页中的某个链接,进入到下一个网页,它没有在APP中继续显示,而是要在手机浏览器中显示网址,这显示没有了良好的人机交互体验。(PS:这个问题有的网页是不出现的,本人没有大量测试,估计是我在Fragment中使用WebView的原因,在Activity中就没有这个问题,不管怎么样,加上相应的代码就可以了)

下面来看代码

 1 package com.example.qunxiong;
 2 
 3 import android.os.Bundle;
 4 import android.support.v4.app.Fragment;
 5 import android.view.LayoutInflater;
 6 import android.view.View;
 7 import android.view.ViewGroup;
 8 import android.webkit.WebSettings;
 9 import android.webkit.WebView;
10 import android.webkit.WebViewClient;
11 
12 public class FragmentShow extends Fragment{
13     private WebView webview;
14     @Override
15     public View onCreateView(LayoutInflater inflater, ViewGroup container,
16             Bundle savedInstanceState) {
17         // TODO Auto-generated method stub
18     
19         
20         
21         return inflater.inflate(R.layout.web_show, container,false);
22     }
23     @Override
24     public void onViewCreated(View view, Bundle savedInstanceState) {
25         // TODO Auto-generated method stub
26         super.onViewCreated(view, savedInstanceState);
27         webview = (WebView) view.findViewById(R.id.webview);
28         WebSettings settings = webview.getSettings();
29         settings.setJavaScriptEnabled(true);
30         //设置在APP内部打开网址链接
31         webview.setWebViewClient(new webViewClient());
32         
33         //支持缩放
34         settings.setUseWideViewPort(true);//设定支持viewport
35         settings.setLoadWithOverviewMode(true);
36         settings.setBuiltInZoomControls(true);
37         settings.setSupportZoom(true);//设定支持缩放   
38         
39         //打开的网址
40         webview.loadUrl("http://www.527fgame.com/news.html");
41     }
42     //设置在APP内部打开网址链接
43     class webViewClient extends WebViewClient{
44         @Override
45         public boolean shouldOverrideUrlLoading(WebView view, String url) {
46             // TODO Auto-generated method stub
47             view.loadUrl(url);
48             return true;
49         }
50     }
51 }

代码很简单,都给了相应的注释了

其中关键的代码

1 //设置在APP内部打开网址链接
2         webview.setWebViewClient(new webViewClient());
1 //设置在APP内部打开网址链接
2     class webViewClient extends WebViewClient{
3         @Override
4         public boolean shouldOverrideUrlLoading(WebView view, String url) {
5             // TODO Auto-generated method stub
6             view.loadUrl(url);
7             return true;
8         }
9     }

加上之后,就不会出现在浏览器中显示网页的问题了

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-05-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云小微
腾讯云小微,是一套腾讯云的智能服务系统,也是一个智能服务开放平台,接入小微的硬件可以快速具备听觉和视觉感知能力,帮助智能硬件厂商实现语音人机互动和音视频服务能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档