iOS 不显示网址和文本的共享扩展

iOS Share extension not showing for URLs and Text

所以我使用 react-native 创建了一个混合应用程序,我在为 android 设置共享时没有遇到任何问题,但是在 iOS 中我无法让我的应用程序出现在共享中列表。 我需要 Apple Music 或共享 URL 的任何应用程序才能共享到我的分机。

我已将以下设置添加到我的 info.plist 共享扩展

如果我提到图像的 NSExtensionActivationRule,我可以在列表中看到我的应用程序,但它根本不适用于 URLs。我是不是在设置中遗漏了什么?

更新:

我使用的是 MacOS 10.15 和 Xcode 12.4 共享扩展在 iOS 14.2 和 iPhone 8 上按预期工作,但在 iOS 14.4.2 和 iPhone X[=14= 上未按预期工作]

在 Apple 开发者论坛上找到更多信息:https://developer.apple.com/forums/thread/662671?page=2

如果您重新启动设备,它似乎会得到修复,这是一个未解决的问题,首先出现在 iOS 14.4.1

发现另一个有类似问题的问题 Share extension - App not showing in share menu on first attempt since iOS 14

自从我将 Mac OS 升级到最新版本的 BigSur 后,它似乎已修复,共享扩展再次正常显示

要为共享 sheet 添加更多应用程序,请在您的 info.plist 中添加外部应用程序查询架构代码,如下所示。

<key>LSApplicationQueriesSchemes</key>
    <array>
        <string>mailto</string>
        <string>twitter</string>
        <string>viber</string>
        <string>whatsapp</string>
        <string>wechat</string>
        <string>line</string>
        <string>instagram</string>
        <string>instagram-stories</string>
        <string>kakaotalk</string>
        <string>mqq</string>
        <string>vk</string>
        <string>comgooglemaps</string>
        <string>googlephotos</string>
        <string>ha</string>
        <string>yammer</string>
    </array>

并使用来自react-native

分享
try {
  const result = await Share.share(
    {
      message: `My message`,
      url: urlLink,
      title: `My title`,
    },
    {
      subject: `My subject`,
    },
  );

  if (result.action === Share.sharedAction) {
    if (result.activityType) {
    } else {
    }
  } else if (result.action === Share.dismissedAction) {
  }
} catch (error) {
  alert(error.message);
}