如何添加分享到 Instagram 快拍的选项?
How to add an option to share to Instagram Stories?
背景
在我的 Android 应用程序中,用户可以将生成的图像共享给其他应用程序。使用 ACTION_SEND
Intent 效果很好。
许多用户问为什么他们不能直接分享到 Instagram 故事。
最初我认为 Instagram 不支持接收故事的意图(在某种程度上是正确的)。我今天搜索了它,根据 this documentation,要分享到 Instagram 故事,必须使用单独的意图 com.instagram.share.ADD_TO_STORY
。我试过了,没问题。
问题:
如何让这两个选项都可用?
想了很久,想出了以下方案:
1) 有两个单独的按钮。 它会起作用,但会 look/feel 不好。
2) 让我的应用程序接受 ACTION_SEND
意图,将其命名为 Share to Instagram Story,并将意图重定向到 com.instagram.share.ADD_TO_STORY
意图。原则上做个代理意向。
它会工作,look/feel 很好,但我不知道它是否允许(合法等),如果用户没有安装 Instagram,我可以禁用意图。
3) 将 'com.instagram.share.ADD_TO_STORY' 添加到 ACTION_SEND
启动的应用程序选择器中。 这将是理想的,但我不知道该怎么做它。
如果您想向 Intent
添加多个操作并创建一个选择器,请查看此示例:
Intent viewIntent = new Intent(Intent.ACTION_VIEW);
Intent editIntent = new Intent(Intent.ACTION_EDIT);
viewIntent.setDataAndType(uri, type);
editIntent.setDataAndType(uri, type);
Intent chooserIntent = Intent.createChooser(editIntent, "Open in...");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] { viewIntent });
startActivity(chooserIntent);
更新:这是对您的回答的很好的解决方案。 How to make an intent with multiple actions
我尝试了与 Facebook
官方文档相同的方法,然后在 Huawai P9 Lite
、Huawai P20 Lite
和 Samsung S8
上进行了测试 - 它只适用于 [=13] =] 出于未知原因(对我而言)。我放弃了它,因为很明显,它不适用于大多数手机。
背景
在我的 Android 应用程序中,用户可以将生成的图像共享给其他应用程序。使用 ACTION_SEND
Intent 效果很好。
许多用户问为什么他们不能直接分享到 Instagram 故事。
最初我认为 Instagram 不支持接收故事的意图(在某种程度上是正确的)。我今天搜索了它,根据 this documentation,要分享到 Instagram 故事,必须使用单独的意图 com.instagram.share.ADD_TO_STORY
。我试过了,没问题。
问题:
如何让这两个选项都可用?
想了很久,想出了以下方案:
1) 有两个单独的按钮。 它会起作用,但会 look/feel 不好。
2) 让我的应用程序接受 ACTION_SEND
意图,将其命名为 Share to Instagram Story,并将意图重定向到 com.instagram.share.ADD_TO_STORY
意图。原则上做个代理意向。
它会工作,look/feel 很好,但我不知道它是否允许(合法等),如果用户没有安装 Instagram,我可以禁用意图。
3) 将 'com.instagram.share.ADD_TO_STORY' 添加到 ACTION_SEND
启动的应用程序选择器中。 这将是理想的,但我不知道该怎么做它。
如果您想向 Intent
添加多个操作并创建一个选择器,请查看此示例:
Intent viewIntent = new Intent(Intent.ACTION_VIEW);
Intent editIntent = new Intent(Intent.ACTION_EDIT);
viewIntent.setDataAndType(uri, type);
editIntent.setDataAndType(uri, type);
Intent chooserIntent = Intent.createChooser(editIntent, "Open in...");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] { viewIntent });
startActivity(chooserIntent);
更新:这是对您的回答的很好的解决方案。 How to make an intent with multiple actions
我尝试了与 Facebook
官方文档相同的方法,然后在 Huawai P9 Lite
、Huawai P20 Lite
和 Samsung S8
上进行了测试 - 它只适用于 [=13] =] 出于未知原因(对我而言)。我放弃了它,因为很明显,它不适用于大多数手机。