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

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

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

下面来看代码

 package com.example.qunxiong;

 import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient; public class FragmentShow extends Fragment{
private WebView webview;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub return inflater.inflate(R.layout.web_show, container,false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onViewCreated(view, savedInstanceState);
webview = (WebView) view.findViewById(R.id.webview);
WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
//设置在APP内部打开网址链接
webview.setWebViewClient(new webViewClient()); //支持缩放
settings.setUseWideViewPort(true);//设定支持viewport
settings.setLoadWithOverviewMode(true);
settings.setBuiltInZoomControls(true);
settings.setSupportZoom(true);//设定支持缩放 //打开的网址
webview.loadUrl("http://www.527fgame.com/news.html");
}
//设置在APP内部打开网址链接
class webViewClient extends WebViewClient{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
return true;
}
}
}

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

其中关键的代码

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

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

最新文章

  1. [Deprecated!] Android开发案例 - 微博正文
  2. Linux系统下的程序开发之:命名规范
  3. 使用spring的特殊bean完成配置
  4. velocity思维导图笔记
  5. 诊断一句SQL不走索引的原因
  6. [Effective Java]第八章 通用程序设计
  7. Linux makefile教程之函数七[转]
  8. OpenCV之mixChannels()函数使用说明
  9. Unity3D之Mecanim动画系统学习笔记(五):Animator Controller
  10. python3-day1(基础总结)
  11. 【Python】 零碎知识积累 II
  12. Python 找零问题
  13. Spark基础-scala学习(四、函数式编程)
  14. Laravel 5.2 INSTALL- node's npm and ruby's bundler.
  15. Linux文本编辑器之vim
  16. IPMB接口协议总结
  17. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境
  18. js中的同步与异步的问题
  19. 不会Python开发的运维终将被淘汰?
  20. 手把手教做Excel直方图

热门文章

  1. Android-如何显示版本号并制作3秒跳转页
  2. Swift5 语言指南(十八) 可选链接
  3. Linux下MySQL的简单操作
  4. JavaScript 交换数组元素位置的几种方式
  5. Selenium3 + Python3自动化测试系列一——安装Python+selenium及selenium3 浏览器驱动
  6. python之函数参数问题(参数为可变对象)
  7. Python内置类型(3)——比较
  8. SpringBoot2.0源码分析(二):整合ActiveMQ分析
  9. Deep learning with Python 学习笔记(7)
  10. 3分钟看完Java 8——史上最强Java 8新特性总结之第三篇 函数式编程技巧