在我的Android中,如果我点击指向Play商店的链接,Android会自动打开游戏商店,以便我可以下载该应用。
如果该链接位于应用的网页浏览中,则会打开一个网页,类似于在桌面上打开的网页。有没有办法解决?我尝试过的链接类型是:
market:// details?id = com.alpinereplay.android(在webview中根本不起作用) https://play.google.com/store/apps/details?id=com.appname.android(打开像网站一样的桌面)
答案 0 :(得分:3)
我真的很惊讶这种行为正在发生。你确定这不是你明确做的事情吗? WebViewClient
中shouldOverrideUrlLoading
的文档说:
默认情况下,WebView会要求活动管理器为URL选择合适的处理程序。
如果你有WebViewClient
,请确保在shouldOverrideUrlLoading
中有代码来决定何时启动Play商店,然后在WebView
中加载页面 - 也许是{{3} },parsing the URL,并为您的网址使用market
方案。
答案 1 :(得分:0)
默认情况下,如果您未设置任何WebViewClient
webView.loadUrl("market://details?id=your_package");
方法不起作用,它显示找不到页面。
如果您尝试加载包含市场链接的页面,并且未设置WebViewClient
,则此页面将在设备浏览器中打开,因此您应设置WebViewClient
,因为您设置了WebViewClient
1}};您应该像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", "");