使用共享扩展后需要打开我的应用程序。就像 Dropbox 和 Maps.me 一样

Need to open my app after using a sharing extension. Just like Dropbox and Maps.me do

我在 context.openURL 的扩展程序中尝试过,但被 Apple 阻止了。 他们的文档是这样说的:

Discussion: Each extension point determines whether to support this method, or under which conditions to support this method. In iOS 8.0, only the Today extension point supports this method.

那么,如何在选择共享电子邮件中的文件后打开我的应用程序? Dropbox 做到了,Maps.me 做到了,所以一定有办法。

编辑:共享扩展不是解决这个问题的方法。在评论中,汤姆用正确的东西向我指出了 SO post:How does "Open With" some app in iPhone work?

这些应用没有共享扩展。我不知道你在看什么,但你问题的前提是不正确的。

如果您在 Mac 上下载 Dropbox.app 并解压应用程序包,它包含两个扩展:

$ ls Payload/Dropbox.app/PlugIns/
DocPicker.appex/        DropboxTodayView.appex/

如果您在 Info.plist 文件中查看这些扩展名,您会发现它们都不是共享扩展名。 DocPicker.appex 是文件提供程序扩展名:

            <key>NSExtensionPointIdentifier</key>
            <string>com.apple.fileprovider-ui</string>

DropboxTodayView.appex 是今天的扩展:

    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.widget-extension</string>

对 Maps.me 应用程序进行同样的尝试,您会发现它根本不包含任何扩展程序:

$ ls Payload/maps.me.app/PlugIns
ls: Payload/maps.me.app/PlugIns: No such file or directory

Apple 当前的限制使得无法从共享扩展打开包含的应用程序。