zoukankan      html  css  js  c++  java
  • 安卓开发_关于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     }

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

  • 相关阅读:
    Python 存储引擎 数据类型 主键
    Python 数据库
    Python 线程池进程池 异步回调 协程 IO模型
    Python GIL锁 死锁 递归锁 event事件 信号量
    Python 进程间通信 线程
    Python 计算机发展史 多道技术 进程 守护进程 孤儿和僵尸进程 互斥锁
    Python 异常及处理 文件上传事例 UDP socketserver模块
    Python socket 粘包问题 报头
    Django基础,Day7
    Django基础,Day6
  • 原文地址:https://www.cnblogs.com/xqxacm/p/4388825.html
Copyright © 2011-2022 走看看