分享扩展反应原生 - 博览会

Posted

技术标签:

【中文标题】分享扩展反应原生 - 博览会【英文标题】:Share extension react native - expo 【发布时间】:2019-01-09 13:29:31 【问题描述】:

我使用 expo 创建了一个 react-native 应用程序。现在我正在寻找应用程序的共享扩展,以将 CSV 数据从电子邮件附件导入我的应用程序。

我已经尝试过npm package,但这对我不起作用(我无法在 Xcode 中使用该 npm 包构建我的项目)

我认为 react-native 或 expo 没有任何共享 API

在这张图片中,你可以看到他是如何选择将数据导入应用程序的。

我知道如果没有共享扩展 API,我认为 react-native 和 Expo 都没有用,因为您可以创建应用程序但不能扩展它。

寻找解决方案或任何其他替代解决方案。

【问题讨论】:

我认为这个包会解决你的问题github.com/alinz/react-native-share-extension @CiprianB 老实说,我对 Objective-C 没有太多经验。 @CiprianB 你能详细解释一下吗?或者有做这件事的视频吗? 看了作者的描述,没看懂。 目前您没有其他选择来与您的应用共享数据。您需要安装该 npm,并且您已经很好地描述了所有步骤。 PS。请记住,使用这种方法您将编辑本机应用程序(ios + android 【参考方案1】:

恐怕这在世博会上是不可能的。

首先,您是在寻找一种方法来创建自己的扩展程序,还是只是希望您的应用程序位于右侧屏幕截图中的“打开方式列表”中? (共享和“打开方式”是两个不同的东西。)

如果您只想将您的应用列在标准“打开方式列表”中,则无需使用github.com/alinz/react-native-share-extension,因为它有不同的用途。引用回购:

这是一个辅助模块,它将 react native 作为引擎来驱动您的应用程序的共享扩展。

所以有了这个包,你可以使用 react native 来创建你自己的共享扩展

要让您的应用进入“打开方式列表”,您需要转到目标设置并根据屏幕截图进行更改(例如 MS Word)。阅读更多关于它的信息here。但是,恐怕您将无法在不弹出的情况下使用 expo 执行此操作。

如何在 react-native 中获取文件的 url?您需要确保 libRCTLinking.a 在 Xcode 中的 Link Binary with Libraries 中(它可能已经存在)。然后您可以关注docs 并调用Linking.getInitialURL 以获取文件url。然后它真的取决于你想对文件做什么。如果您需要一些复杂的东西,您可能需要编写本机代码。如果您只想将文件上传到某个服务器,那么您可以使用在this commit 中添加到 RN 0.54 的 blob 支持。如何使用 blob 支持的示例是 here。

【讨论】:

我喜欢您的回答,并感谢您提供最有用的信息。我只是想要,我的应用程序在“打开列表”。我错过了分享扩展名。 感谢您的回答!是否可以处理来自本机反应的传入文件?我可以在弹出和编辑屏幕截图中描述的信息后构建 ios 应用程序吗? @RutulPatel 我已经扩展了答案。嗯,是的,你应该可以在弹出后构建应用程序。 我应该从哪里处理从 react native 到应用程序的传入数据? @RutulPatel 请查看答案中的文档链接:facebook.github.io/react-native/docs/linking

以上是关于分享扩展反应原生 - 博览会的主要内容,如果未能解决你的问题,请参考以下文章

反应原生博览会。 Android暗模式问题

在按钮上打开相机点击反应原生博览会

反应原生底部标签导航错误,来自博览会模板的全新应用

在我的博览会反应原生应用程序中添加飞溅时出错

如果应用是从 Google Play 商店下载的,Android 应用是不是只会收到推送通知? (反应原生博览会)

打开地图屏幕时,如何将 MapView 以用户当前位置为中心?反应原生博览会