標籤:generated java plain action sdn csdn ann 實現 new
1.通常情況下 大家可能都想使用WebView開啟網頁內部連結而不想再調用手機瀏覽器,我們可以通過以下兩種方法實現:
(1)為WebView設定一個WebViewClient,並重寫shouldOverrideUrlLoading(WebView view, String url)方法。
[java] view plain copy
- class MyWebViewClient extends WebViewClient {
-
- @Override
-
- public boolean shouldOverrideUrlLoading(WebView view, String url){
-
- // 重寫此方法表明點擊網頁裡面的連結還是在當前的webview裡跳轉,不跳到瀏覽器那邊
-
- view.loadUrl(url);
-
- return true;
-
- }
-
- }
(2)為WebView設定一個WebViewClient,並重寫onPageStarted(WebView view, String url, Bitmap favicon)方法。
[java] view plain copy
- class MyWebViewClient extends WebViewClient {
-
- @Override
-
- public void onPageStarted(WebView view, String url, Bitmap favicon) {
-
- // TODO Auto-generated method stub
-
- super.onPageStarted(view, url, favicon);
-
- }
-
- }
這兩種方法其實都是讓參數view(WebView)載入參數url從而避免手機瀏覽器載入url,第一種方式更常用一些。
2.但有些情況下 我們可能想用WebView開啟大部分連結,而有些連結我們希望調用手機瀏覽器來開啟,我最近的一個項目中就有這樣的需求。這樣其實也很簡單,我們只需要對上面第一種方法加以修改即可。
[java] view plain copy
- class MyWebViewClient extends WebViewClient {
-
- @Override
-
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
-
- // 重寫此方法表明點擊網頁裡面的連結還是在當前的webview裡跳轉,不跳到瀏覽器那邊
-
- if (openWithWevView(url)) {
-
- view.loadUrl(url);
-
- }else{
-
- Uri uri = Uri.parse(url); //url為你要連結的地址
-
- Intent intent =new Intent(Intent.ACTION_VIEW, uri);
-
- startActivity(intent);
-
- }
-
- return true;
-
- }
其中openWithWevView(url)是自己寫的一個方法,用來判斷是否用WevView開啟該連結。
關於用WebView或手機瀏覽器開啟串連問題