【问题标题】:Android WebView NOT launching new browserAndroid WebView 未启动新浏览器
【发布时间】:2011-11-15 02:39:26
【问题描述】:

以前在 android 中使用 webview 时,单击任何链接都会强制打开“正确的”浏览器,然后在该实例中继续进行 web 浏览。

然而,情况似乎不再如此。以下代码导致所有链接都保留在 webview 内,但我实际上希望这些链接启动一个新的浏览器实例。这在 2.3 中有变化吗?

注意我问的是大多数人问的相反(他们问如何将所有链接保留在 webview 中,我希望它们在外部启动)

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        WebView view = new WebView(this);
        setContentView(view);

        view.loadUrl("http://news.bbc.co.uk");

    }
}

编辑:澄清 - 第一个 URL 将加载到 WebView 中,所有后续点击都将在新浏览器中打开。这是我真正想要的简化,但已经足够了。

基本上问题是,之前单击链接会打开一个新的浏览器会话。大多数人不希望这样(因此这里有关于它的问题),但我愿意。但是由于某种原因,现在它似乎一直加载到 webview 中(也许是 2.3?)

【问题讨论】:

    标签: android android-webview


    【解决方案1】:

    Houps,错误的答案,我误解了你的问题。 需要删除...

    【讨论】:

      【解决方案2】:

      让我明白。您是想在同一个 web 视图中启动第一个网页,而其他超链接转到默认浏览器,还是希望默认浏览器本身为单击的第一个链接打开?

      如果是第一种情况,我不完全知道,除非您知道某种从 web 视图收集链接 URL 的方法。

      对于第二种情况,即为任何 URL 单击启动默认浏览器,只需跳过(删除)此行:view.setWebViewClient(new WebViewClient() { });,它将在默认浏览器中打开所有链接,而不是 web 视图本身。

      【讨论】:

      • 更新说明。如果没有 webviewclient 实例,它也无法工作(这是我的测试遗留下来的,不应该包含在原始帖子中)。
      • 在这种情况下,我建议尝试拦截触摸/点击事件,从 WebView 中获取相应的 URL,并推送它以引入在浏览器中打开网页的意图。
      • 那是我不想做的,但在没有任何其他建议的情况下,我会接受这是我唯一的行动方案。
      猜你喜欢
      • 2011-12-06
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 2012-06-29
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多