安卓開發_關於WebView使用連結時呼叫瀏覽器顯示的問題

來源:互聯網
上載者:User

標籤:

在我們的實際開發中,我們用到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     @Override15     public View onCreateView(LayoutInflater inflater, ViewGroup container,16             Bundle savedInstanceState) {17         // TODO Auto-generated method stub18     19         20         21         return inflater.inflate(R.layout.web_show, container,false);22     }23     @Override24     public void onViewCreated(View view, Bundle savedInstanceState) {25         // TODO Auto-generated method stub26         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);//設定支援viewport35         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         @Override45         public boolean shouldOverrideUrlLoading(WebView view, String url) {46             // TODO Auto-generated method stub47             view.loadUrl(url);48             return true;49         }50     }51 }

代碼很簡單,都給了相應的注釋了

其中關鍵的代碼

1 //設定在APP內部開啟網址連結2         webview.setWebViewClient(new webViewClient());
1 //設定在APP內部開啟網址連結2     class webViewClient extends WebViewClient{3         @Override4         public boolean shouldOverrideUrlLoading(WebView view, String url) {5             // TODO Auto-generated method stub6             view.loadUrl(url);7             return true;8         }9     }

加上之後,就不會出現在瀏覽器中顯示網頁的問題了

安卓開發_關於WebView使用連結時呼叫瀏覽器顯示的問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.