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之运算符以及基本数据类型的object
    Python第一次写的代码
    Oracle角色管理
    Oracle的控制文件和日志文件
    Oracle的权限管理
    Oracle内置函数
    Oracle视图的使用
    Oracle事务和锁
    Oracle的用户管理
  • 原文地址:https://www.cnblogs.com/xqxacm/p/4388825.html
Copyright © 2011-2022 走看看