Je souhaite que mon application react-native soit disponible pour le partage à partir de Whatsapp, Skype, Photos .. J'ai essayé d'utiliser react-native-share-extension mais elle ne montre que l'extension dans le navigateur Safari.
Comment implémenter la fonctionnalité de partage dans des applications autres que Safari dans react-native pour iOS?
Je l'ai corrigé en ajoutant ceci dans le plist info
<dict>
<key>NSExtensionActivationRule</key>
<dict>
<key>NSExtensionActivationSupportsImageWithMaxCount</key>
<integer>1</integer>
</dict>
</dict>
Par défaut, react-native-share-extension autorise uniquement le partage des URL à partir des navigateurs. Il y a une configuration supplémentaire à ajouter si vous souhaitez que le système affiche votre extension lors du partage d'une URL que vous semblez avoir manquée.
Pour iOS, vous devez simplement mettre à jour le fichier Info.plist
et ajouter les éléments suivants:
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<dict>
<key>NSExtensionActivationSupportsWebURLWithMaxCount</key>
<integer>1</integer>
</dict>
</dict>
Pour confirmer qu'il est correctement effectué, ce paramètre doit ensuite être affiché dans XCode et permettre une construction réussie:
Cela est dû au fait que la configuration par défaut si ce package concerne le partage d’URL avec votre application.
Vous devez modifier/étendre/réécrire NSExtensionActivationRule
dans Config.plist
de votre extension de partage et rester avec le paquet react-native-share-extension. En savoir plus sur cette clé de l'auteur et dans Documents Apple directement.
Ainsi, vous pouvez entièrement réécrire la règle à appliquer, par exemple. fichiers pdf (comme indiqué dans les documents Apple):
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<string>
{extensionItems = ({
attachments = ({
registeredTypeIdentifiers = (
"com.Adobe.pdf",
"public.file-url"
);
});
})}
</string>
</dict>
Toutes les clés de NSExtensionActivationRule
sont disponibles ici .