【问题标题】:Android WebView opens uTorrent [closed]Android WebView 打开 uTorrent [关闭]
【发布时间】:2012-12-24 21:32:25
【问题描述】:

在手机上安装 utorrent 时,点击应用 webview 中的链接会打开 utorrent 而不是加载链接!

即使使用 javascript 也不能​​解决问题:

window.location.href='index.html'

它仍然会带来 utorrent。

如果没有安装utorrent也没问题。

我在网络上找不到任何关于此的内容。

有什么问题?

【问题讨论】:

  • 我想知道谁投票关闭,为什么!?
  • 您的WebViewClientshouldOverrideUrlLoading() 中做了什么?
  • 我没有向 WebViewClient 添加任何内容,对此我也不太了解。 @CommonsWare

标签: android webview


【解决方案1】:

您必须创建一个WebViewClient 来防止这种行为:

public class webViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}

然后将其设置为您的WebView,如下所示:

webview.setWebViewClient(new webViewClient());

【讨论】:

  • 此方法有效,但不知何故破坏了 JS 中的 history.back()。我这样称呼它 this.wv.loadUrl("javascript:history.back()");它来回前进到最后两页。
【解决方案2】:

当用户点击WebView中的普通链接时,Android默认会在链接中的URL上启动ACTION_VIEWIntent。通常,这会调出用户的默认 Web 浏览器,但在某些情况下它可能会调出另一个应用程序,就像这里的情况一样。

如果您不想要默认行为,则需要创建WebViewClient 子类的实例,在其中实现shouldOverrideUrlLoading() 以执行其他操作而不是默认行为。然后通过setWebViewClient()WebViewClient 实例附加到WebView

【讨论】:

  • 当未安装 uTorrent 时,它会在 webview 而不是浏览器中加载链接,我什至没有定义 shouldOverrideUrlLoading()。但 uTorrent 会在安装后获得点击。
  • @Ali:“当未安装 uTorrent 时,它会在 webview 而不是浏览器中加载链接”——不,它不会,除非您使用 WebViewClient,如果它是普通链接.
【解决方案3】:

uTorrent 应用程序可以指定一个可以由包含 html 链接的意图打开的活动。如果您没有其他可以打开链接的工具(即某种浏览器),或者如果您已将 uTorrent 设置为默认应用程序以启动链接,它将自动打开。

尝试转到设置 > 应用程序,然后单击 uTorrent。如果可以,请单击“清除默认值”按钮,然后尝试再次打开您的链接。

【讨论】:

  • 我想把这个应用放到google play上。如果能在应用内解决就更好了。
  • 我去了 utorrent 配置页面,上面写着:“没有设置默认值”并且按钮被禁用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
  • 1970-01-01
  • 2017-05-24
相关资源
最近更新 更多