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

在我们的实际开发中,我们用到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     }

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

时间: 2024-12-13 06:54:10

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

安卓开发_关于WebView加载页面空白问题

依据我自己的测试,发现有时候用APP打开网页的时候,有的网页加载成功之前需要很久,有的一下就出来了(比如百度) 当加载时间过长的情况下,这时候显示的是空白界面,其实不是代码问题,只是要打开的这个网页太大了. 那么为了提高用户体验,我们就得想办法在这个空白界面等待的情况下加点东西. 首先,想到的就是提示框 具体操作呢 package com.example.qunxiong; import android.app.Activity; import android.app.AlertDialog;

安卓开发_浅谈Android动画(四)

Property动画 概念:属性动画,即通过改变对象属性的动画. 特点:属性动画真正改变了一个UI控件,包括其事件触发焦点的位置 一.重要的动画类及属性值: 1.  ValueAnimator 基本属性动画类 方法 描述 setDuration(long duration) 设置动画持续时间的方法 setEvaluator(TypeEvaluator value) 设置插值计算的类型 setInterpolator(TimeInterpolator value) 设置时间插值器的类型 addUp

安卓开发_慕课网_百度地图_实现模式转换

学习内容来自“慕课网” 模式转换,即地图的普通模式,罗盘模式,跟随模式之间的转换 学习内容接自前三篇 安卓开发_慕课网_百度地图 安卓开发_慕课网_百度地图_实现定位 安卓开发_慕课网_百度地图_实现方向传感器 一.模式转换通过菜单按钮来控制 所以添加对应的菜单项(红色字体部分) 1 <menu xmlns:android="http://schemas.android.com/apk/res/android" > 2 3 <item 4 android:id=&qu

安卓开发_慕课网_百度地图_实现方向传感器

学习内容来自“慕课网” 这里学习百度地图方向传感器功能 就是当转动手机的时候,地图上显示个人所在位置的图标的箭头变动 学习接自前两篇 安卓开发_慕课网_百度地图 安卓开发_慕课网_百度地图_实现定位 思路: 传感器随着定位的开始而开启,随着定位的结束而结束 传感器获得位置的移动而更新方向 代码在前两篇的基础上修改 一.讲原本坐标的图标改成箭头图标 二.引入方向传感器 首先增添MainActivity.java中的自定义图标和方向传感器代码 看红色字体的部分 1 package com.examp

安卓开发_数据存储技术_sqlite

一.SQLite SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了.SQLite已经被多种软件和产品使用 二.SQLite特性 1 2 1.轻量级 3 SQLite和C\S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器.使用SQLite一般只需要带上它的一个动态库,就可以享受它的全部功能.而且那个动态库的尺寸也相当小. 4 2.独立性 5 SQLite数据库的核心引擎本身

安卓开发_浅谈ListView(自定义适配器)

ListView作为一个实际开发中使用率非常高的视图,一般的系统自带的适配器都无法满足开发中的需求,这时候就需要开发人员来自定义适配器使得ListView能够有一个不错的显示效果 有这样一个Demo ,实现图片文字混合列表 1 package com.example.work; 2 3 import java.util.ArrayList; 4 import java.util.HashMap; 5 import java.util.List; 6 7 8 import android.R.in

安卓开发_慕课网_百度地图_添加覆盖物

学习内容来自“慕课网” 本片学习内容接自前四篇基础 安卓开发_慕课网_百度地图 安卓开发_慕课网_百度地图_实现定位 安卓开发_慕课网_百度地图_实现方向传感器 安卓开发_慕课网_百度地图_实现模式转换 请先学习前4篇再学习本篇,因为本篇在前四篇的基础上进行代码的编写 一.新建一个类用来存放数据(距离,点赞数,介绍图等信息) 1 package com.example.map; 2 3 import java.io.Serializable; 4 import java.util.ArrayLi

安卓开发_浅谈WebView(转)

最近在做一个关于游戏“群雄逐鹿”辅助软件,有一个功能需要在APP中调用网站 百度了一下,发现需要用WebView来实现 实现方法很容易,我就不在这里写一遍了 ,直接转一下我学习的内容吧 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明. 否则将追究法律责任.http://liangruijun.blog.51cto.com/3061169/647456 先声明一下 接下来是内容了 WebView(网络视图)能加载显示网页,可以将其视为一个浏览器.它使用了WebK

安卓开发复习笔记——WebView组件

我们专业方向本是JAVA Web,这学期突然来了个手机App开发的课设,对于安卓这块,之前自学过一段时间,有些东西太久没用已经淡忘了 准备随笔记录些复习笔记,也当做温故知新吧~ 1.什么是WebView? WebView(网络视图)能加载显示网页,可以将其视为一个浏览器,它使用了WebKit渲染引擎加载显示网页. 废话不多说,直接上代码 1.需要在xml布局文件中声明WebView组件 1 <WebView 2 android:id="@+id/webview" 3 androi