如何在 expo 应用程序中处理共享意图(发送图像)?
Posted
技术标签:
【中文标题】如何在 expo 应用程序中处理共享意图(发送图像)?【英文标题】:How to handle a share intent(sending an image) in the expo app? 【发布时间】:2020-05-11 01:52:15 【问题描述】:有没有办法处理共享文件到 expo 应用程序?根据documentation of app.json 可以提供intentFilters
,但我找不到任何事后处理它们的信息。
弹出不是一种选择。
【问题讨论】:
你看过链接吗? Handling links into your app。再往下一点,它还包含有关处理传递给应用程序的数据的部分。 是的,我做到了,但它只提供了一个看起来像exp://exp.host/@community/native-component-list
的 url,但没有图像信息
【参考方案1】:
文档说
要在 ExpoKit 项目中添加或编辑意图过滤器,请直接编辑 androidManifest.xml。
您可以看到 here 如何在清单中添加一个意图过滤器,它定义将处理接收文本(您可以删除这部分)或图像的活动(在示例中为 ShareActivity
)
<activity android:name="ShareActivity">
<!-- This activity handles "SEND" actions with text data -->
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
</intent-filter>
<!-- This activity also handles "SEND" and "SEND_MULTIPLE" with media data -->
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<action android:name="android.intent.action.SEND_MULTIPLE"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="application/vnd.google.panorama360+jpg"/>
<data android:mimeType="image/*"/>
<data android:mimeType="video/*"/>
</intent-filter>
</activity>
然后,在您在 expo.io 中的活动中,您需要从 Intent
获取额外信息,您将获得附加图像的信息
【讨论】:
他没有使用 Expokit,而是一个托管的 expo 应用程序(并且不能选择弹出)。所以很遗憾,这是不可能的。 我没有使用 expokit,我知道如何添加意图过滤器(我有一个问题中的文档链接)。我不知道如何处理来自应用程序的图像。 例如要处理通知,可以添加Notifications.addListener(listener)
并在listener
回调中处理通知。我希望分享意图存在类似的东西以上是关于如何在 expo 应用程序中处理共享意图(发送图像)?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Expo 在 react-native 上共享图像和文件