如何创建 React Native ios 分享扩展应用
How to create a react native ios share extension app
我希望我的 react-native 应用可以从 Whatsapp、Skype、Photos 共享。我尝试使用 react-native-share-extension,但它只在 Safari 浏览器中显示扩展。
如何在react-native for iOS中实现非Safari应用的分享功能?
这是因为默认设置,如果此包用于共享 url 到您的应用程序。
您需要 change/extend/rewrite NSExtensionActivationRule
在 Config.plist
的共享扩展中,并继续使用 react-native-share-extension 包。直接阅读有关此密钥的更多信息 from author and in Apple docs。
因此您可以完全重写规则以应用例如pdf 文件(如苹果文档中所述):
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<string>
{extensionItems = ({
attachments = ({
registeredTypeIdentifiers = (
"com.adobe.pdf",
"public.file-url"
);
});
})}
</string>
</dict>
可以找到 NSExtensionActivationRule
的所有键 here。
我通过在信息 plist 中添加这个来修复它
<dict>
<key>NSExtensionActivationRule</key>
<dict>
<key>NSExtensionActivationSupportsImageWithMaxCount</key>
<integer>1</integer>
</dict>
</dict>
默认情况下,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 中并允许成功构建:
我希望我的 react-native 应用可以从 Whatsapp、Skype、Photos 共享。我尝试使用 react-native-share-extension,但它只在 Safari 浏览器中显示扩展。
如何在react-native for iOS中实现非Safari应用的分享功能?
这是因为默认设置,如果此包用于共享 url 到您的应用程序。
您需要 change/extend/rewrite NSExtensionActivationRule
在 Config.plist
的共享扩展中,并继续使用 react-native-share-extension 包。直接阅读有关此密钥的更多信息 from author and in Apple docs。
因此您可以完全重写规则以应用例如pdf 文件(如苹果文档中所述):
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<string>
{extensionItems = ({
attachments = ({
registeredTypeIdentifiers = (
"com.adobe.pdf",
"public.file-url"
);
});
})}
</string>
</dict>
可以找到 NSExtensionActivationRule
的所有键 here。
我通过在信息 plist 中添加这个来修复它
<dict>
<key>NSExtensionActivationRule</key>
<dict>
<key>NSExtensionActivationSupportsImageWithMaxCount</key>
<integer>1</integer>
</dict>
</dict>
默认情况下,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 中并允许成功构建: