標籤:
在我們的實際開發中,我們用到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使用連結時呼叫瀏覽器顯示的問題