您好,登錄后才能下訂單哦!
Android WebView或手機(jī)瀏覽器打開連接問題解決辦法總結(jié)
1.通常情況下 大家可能都想使用WebView打開網(wǎng)頁內(nèi)部鏈接而不想再調(diào)用手機(jī)瀏覽器,
我們可以通過以下兩種方法實(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)頁里面的鏈接還是在當(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打開大部分鏈接,而有些鏈接我們希望調(diào)用手機(jī)瀏覽器來打開,我最近的一個(gè)項(xiàng)目中就有這樣的需求。這樣其實(shí)也很簡單,我們只需要對(duì)上面第一種方法加以修改即可。
class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // 重寫此方法表明點(diǎn)擊網(wǎng)頁里面的鏈接還是在當(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è)方法,用來判斷是否用WevView打開該鏈接。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。