Android強制使用WebView不呼叫系統或外部瀏覽器
HTML5 HYBIRD混合APP需要在H5頁面中開啟第三方網站(例如:百度),android預設不在當前WebView中開啟,反而會呼叫系統或外部瀏覽器,解決辦法是自己重寫WebViewClient,覆蓋shouldOverrideUrlLoading並讓其返回True。
實現程式碼
原因可以從Android原始碼中可知,True if the host application wants to leave the current WebView and handle the url itself, otherwise return false。
需要注意一點問題,如果你的程式碼中有撥打電話(tel:),傳送郵件(mailto:)的話,需要在實現程式碼時對URL簡單篩選一下才好
--------------------------------------------------------------------------------------
- 版權宣告:
- 如在本頁面內無特別說明,本文內容均為[李大仁部落格]原創,本文版權歸[李大仁部落格]所有。
- 歡迎轉載,轉載請務必在文章頁面明顯位置提供原文連結並註明出處。歡迎您在轉載本文時保留本段宣告。
- 文章標題:Android強制使用WebView不呼叫系統或外部瀏覽器
- 獨立部落格:李大仁部落格
- 永久連結:http://www.lidaren.com/archives/1583
--------------------------------------------------------------------------------------
以上內容由部落格自動釋出工具自動釋出,最終顯示內容和效果會與原文內容有所偏差,敬請諒解。
實現程式碼
mWebView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
// webview自己載入URL,讓後通知系統不需要HandleURL
view.loadUrl(url);
return true;
}
});
原因可以從Android原始碼中可知,True if the host application wants to leave the current WebView and handle the url itself, otherwise return false。
/** Give the host application a chance to take over the control when a new url is about to be loaded
* in the current WebView. If WebViewClient is not provided, by default WebView will ask Activity
* Manager to choose the proper handler for the url. If WebViewClient is provided, return true means
* the host application handles the url, while return false means the current WebView handles the url.
* This method is not called for requests using the POST "method".
@param view The WebView that is initiating the callback.
@param url The url to be loaded.
@return True if the host application wants to leave the current WebView and handle the url itself, otherwise return false.
*/
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
需要注意一點問題,如果你的程式碼中有撥打電話(tel:),傳送郵件(mailto:)的話,需要在實現程式碼時對URL簡單篩選一下才好
--------------------------------------------------------------------------------------
- 版權宣告:
- 如在本頁面內無特別說明,本文內容均為[李大仁部落格]原創,本文版權歸[李大仁部落格]所有。
- 歡迎轉載,轉載請務必在文章頁面明顯位置提供原文連結並註明出處。歡迎您在轉載本文時保留本段宣告。
- 文章標題:Android強制使用WebView不呼叫系統或外部瀏覽器
- 獨立部落格:李大仁部落格
- 永久連結:http://www.lidaren.com/archives/1583
--------------------------------------------------------------------------------------
以上內容由部落格自動釋出工具自動釋出,最終顯示內容和效果會與原文內容有所偏差,敬請諒解。
相關文章
- Webview 不向系統瀏覽器跳轉WebView瀏覽器
- Android進階2之WebView(瀏覽器)AndroidWebView瀏覽器
- Win10系統如何強制開啟Chrome瀏覽器黑暗模式Win10Chrome瀏覽器模式
- Android 用WebView開發簡單的瀏覽器AndroidWebView瀏覽器
- Android 簡單瀏覽器例項-webview控制元件Android瀏覽器WebView控制元件
- 瀏覽器事件系統瀏覽器事件
- 微信H5支付如何呼叫外部瀏覽器完成支付H5瀏覽器
- 瀏覽器新增外部擴充套件瀏覽器套件
- 開啟 Android WebView 的安全瀏覽模式AndroidWebView模式
- WebView 詳解(簡易瀏覽器Demo)WebView瀏覽器
- 大象跳轉-使用JS實現在微信中呼叫外部瀏覽器開啟指定連結JS瀏覽器
- 微信域名防封系統之微信跳轉外部瀏覽器實現方案瀏覽器
- 瀏覽器渲染機制瀏覽器
- Win10系統下強制Edge瀏覽器所有頁面啟用Dark模式的方法Win10瀏覽器模式
- win10系統瀏覽器打不開怎麼辦Win10瀏覽器
- Android:一個實用的WebView瀏覽頁面,可直接使用AndroidWebView
- 關閉瀏覽器,迫使使用者退出系統瀏覽器
- 微信跳轉外部瀏覽器有哪些功效?瀏覽器
- "幹掉"手機用 UC 瀏覽器瀏覽 Web 網站,UC 瀏覽器強制在頁面底部嵌入噁心 iframe 廣告瀏覽器Web網站
- 瀏覽器快取機制瀏覽器快取
- 瀏覽器相關機制瀏覽器
- js 呼叫瀏覽器複製功能JS瀏覽器
- 使用瀏覽器位址列呼叫CXF Webservice的寫法瀏覽器Web
- 選擇系統瀏覽器及分享瀏覽器
- JavaScript判斷系統和瀏覽器JavaScript瀏覽器
- win10電腦中IE瀏覽器不見了怎麼辦_win10系統ie瀏覽器不見了如何找回Win10瀏覽器
- win10系統中QQ瀏覽器打不開如何解決Win10瀏覽器
- 這樣就能微信跳外部瀏覽器?好方便瀏覽器
- edge瀏覽器能編輯pdf嗎?win10系統如何使用edge瀏覽器編輯pdf瀏覽器Win10
- 新版 Edge 瀏覽器或將擁有兩個不同的瀏覽器核心瀏覽器
- win10系統如何設定QQ瀏覽器為預設瀏覽器Win10瀏覽器
- Win10系統如何設定360瀏覽器為預設瀏覽器Win10瀏覽器
- 瀏覽器頁面渲染機制瀏覽器
- 瀏覽器的快取機制瀏覽器快取
- 瀏覽器的事件環機制瀏覽器事件
- 瀏覽器HTTP快取機制瀏覽器HTTP快取
- 瀏覽器快取機制剖析瀏覽器快取
- 瀏覽器快取機制(詳)瀏覽器快取