我希望我的react-native应用程序可以从Whatsapp,Skype和Photos中共享。我尝试使用react-native-share-extension,但它仅在Safari浏览器中显示扩展名。
如何在iOS的react-native中在Safari以外的应用程序中实现共享功能?
答案 0 :(得分:0)
这是因为默认设置(如果此程序包用于共享与您的应用程序的网址)。
您需要在共享扩展的NSExtensionActivationRule
中更改/扩展/重写Config.plist
,并继续使用react-native-share-extension软件包。直接在from author和Apple docs中详细了解此键。
因此您可以完全重写规则以应用例如pdf文件(如苹果文档中所述):
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<string>
{extensionItems = ({
attachments = ({
registeredTypeIdentifiers = (
"com.adobe.pdf",
"public.file-url"
);
});
})}
</string>
</dict>
可以找到here的所有NSExtensionActivationRule
键。
答案 1 :(得分:0)
我通过在info plist中添加它来解决了该问题
<dict>
<key>NSExtensionActivationRule</key>
<dict>
<key>NSExtensionActivationSupportsImageWithMaxCount</key>
<integer>1</integer>
</dict>
</dict>
答案 2 :(得分:0)
默认情况下,react-native-share-extension仅允许从浏览器共享URL。如果要告诉系统在共享您似乎错过的URL时显示扩展名,则需要添加一些额外的配置。
对于iOS,您只需更新Info.plist
文件并添加以下内容:
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<dict>
<key>NSExtensionActivationSupportsWebURLWithMaxCount</key>
<integer>1</integer>
</dict>
</dict>
要确认设置正确,应在XCode中显示此设置并允许成功构建: