4

在我的 Android 中,如果我单击指向 Play 商店的链接,Android 会自动打开 Play 商店,以便我可以下载该应用程序。

如果该链接位于应用程序的 web 视图中,则会打开一个网页,类似于在桌面上打开的网页。有没有办法解决?我尝试过的链接类型是:

market://details?id=com.alpinereplay.android (在 web 视图中根本不起作用) https://play.google.com/store/apps/details?id=com.appname.android(打开像网站一样的桌面)

4

2 回答 2

3

我实际上很惊讶这种行为正在发生。你确定这不是你明确做的事情吗?shouldOverrideUrlLoading说的文档WebViewClient

默认情况下,WebView 将要求 Activity Manager 为 url 选择正确的处理程序。

如果你有一个WebViewClient确保你有代码shouldOverrideUrlLoading来决定何时启动 Play 商店与加载页面——WebView也许通过解析 URL获取方案,并market为你的 URL 使用方案。

于 2012-12-14T21:16:37.653 回答
0

默认情况下,如果您不设置任何WebViewClient

webView.loadUrl("market://details?id=your_package");

方法不起作用,它显示找不到页面。如果你尝试加载一个包含市场链接的页面,如果你没有设置WebViewClient,这个页面将在设备浏览器中打开,所以你应该设置一个WebViewClient,因为你设置了一个WebViewClient; 你应该像这个答案建议的那样自己处理市场链接。

但是,即使您没有设置WebViewClient. 我认为这是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", "");
于 2013-11-27T09:31:43.810 回答