Android WebView或手機(jī)瀏覽器打開(kāi)連接問(wèn)題解決辦法總結(jié)
1.通常情況下 大家可能都想使用WebView打開(kāi)網(wǎng)頁(yè)內(nèi)部鏈接而不想再調(diào)用手機(jī)瀏覽器,
我們可以通過(guò)以下兩種方法實(shí)現(xiàn):
(1)為WebView設(shè)置一個(gè)WebViewClient,并重寫shouldOverrideUrlLoading(WebView view, String url)方法。
class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url){ // 重寫此方法表明點(diǎn)擊網(wǎng)頁(yè)里面的鏈接還是在當(dāng)前的webview里跳轉(zhuǎn),不跳到瀏覽器那邊 view.loadUrl(url); return true; } } (2)為WebView設(shè)置一個(gè)WebViewClient,并重寫onPageStarted(WebView view, String url, Bitmap favicon)方法。
class MyWebViewClient extends WebViewClient { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { // TODO Auto-generated method stub super.onPageStarted(view, url, favicon); } } 這兩種方法其實(shí)都是讓參數(shù)view(WebView)加載參數(shù)url從而避免手機(jī)瀏覽器加載url,第一種方式更常用一些。
2.但有些情況下 我們可能想用WebView打開(kāi)大部分鏈接,而有些鏈接我們希望調(diào)用手機(jī)瀏覽器來(lái)打開(kāi),我最近的一個(gè)項(xiàng)目中就有這樣的需求。這樣其實(shí)也很簡(jiǎn)單,我們只需要對(duì)上面第一種方法加以修改即可。
class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // 重寫此方法表明點(diǎn)擊網(wǎng)頁(yè)里面的鏈接還是在當(dāng)前的webview里跳轉(zhuǎn),不跳到瀏覽器那邊 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)是自己寫的一個(gè)方法,用來(lái)判斷是否用WevView打開(kāi)該鏈接。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注