默認情況下,如果沒有設置任何WebViewClient
webView.loadUrl("market://details?id=your_package");
方法不起作用,它顯示找不到網頁。 如果您嘗試加載包含市場鏈接的頁面,並且未設置WebViewClient
,則此頁面將在設備瀏覽器中打開,因此您應設置WebViewClient
,因爲您設置了WebViewClient
;你應該自己處理市場鏈接,如this answer建議。
但是,即使您未設置WebViewClient
,您自定義html內的以下鏈接也會打開市場應用程序。我認爲這是shouldOverrideUrlLoading
文檔中提到的情況。
String html = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html><head> </head> <body> <p><a href=\"market://details?id=your_package\">Market Link</a></p> </body></html>";
webView.loadDataWithBaseURL("", html, "text/html", "UTF-8", "");
這是令人失望的 - 我本來期望'市場://'工作。推動來推動,你可以實現你自己的方案(例如,'davidmarket://'),指向你的'Theme.NoDisplay'活動,轉向並啓動常規'market://'活動。 – CommonsWare
是的,這就是我們要做的,除了該應用程序已經在市場上,所以我不能改變任何本地代碼。 – David