【问题标题】:Android: Is it possible to open the browser from a share intent?Android:是否可以从共享意图打开浏览器?
【发布时间】:2015-03-06 16:21:58
【问题描述】:

我想知道是否有可能出于共享意图打开浏览器。让我举一个例子来澄清: 我有一个应用程序,里面有新闻。每个新闻都有一个 url,以便用户可以通过 whatsapp、蓝牙、环聊或其他方式与已知的 android 共享意图共享此链接)。现在我想知道是否有可能,用户也可以出于此共享意图在浏览器中打开此链接。那么:我是否能够说出意图,即他也应该展示在浏览器中打开 news-url 的机会?

我当前的分享意图如下所示:

Intent intent = new Intent(Intent.ACTION_SEND);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        intent.setType("text/plain");
        String shareString = news.getLink();
        intent.putExtra(Intent.EXTRA_TEXT, shareString);
        context.startActivity(intent);

【问题讨论】:

  • 您可以尝试EXTRA_INITIAL_INTENTSIntent.createChooser() 看看是否可以让一个选择器显示多个不同的内容。这个我没试过。

标签: android url browser share


【解决方案1】:

我也有同样的要求。我用下面的代码

    //Creating intent for sharing
    //TODO edit your share link 
    String shareString = "http://www.stackoverflow.com";
    Intent sendIntent = new Intent(Intent.ACTION_SEND);
    sendIntent.setType("text/plain");
    sendIntent.putExtra(Intent.EXTRA_TEXT, shareString);

    //Creating intent for broswer
    //TODO edit you link to open in browser
    String url = "http://www.stackoverflow.com";
    Intent viewIntent = new Intent(Intent.ACTION_VIEW);
    viewIntent.setData(Uri.parse(url));

    Intent chooserIntent = Intent.createChooser(sendIntent, "Open in...");
    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{viewIntent});
    startActivity(chooserIntent);

【讨论】:

    【解决方案2】:

    This answer 提供了一个完整的示例。您可以从原始分享意图列表中选择您想要的应用并添加您自己的意图。

    【讨论】:

    • 这有点不同 - 但它是一个可能的解决方案的开始,因为您可以运行这样的枚举,然后通过查询多个意图来自定义列表 - 而不仅仅是浏览器的共享意图可能不支持,但也会支持。
    • 我知道目的有点不同,但代码 sn-p 似乎提供了足够的信息来实现目标。
    猜你喜欢
    • 2011-06-27
    • 2014-02-18
    • 2016-05-20
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 2012-02-21
    • 2015-09-08
    • 2011-03-09
    相关资源
    最近更新 更多