1

我在我的扩展中使用 context.openURL 进行了尝试,但这被 Apple 阻止了。这就是他们的文档所说的:

讨论: 每个扩展点决定是否支持这种方法,或者在什么条件下支持这种方法。在 iOS 8.0 中,只有 Today 扩展点支持这种方法。

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

编辑:共享扩展不是解决这个问题的方法。在评论中,汤姆向我指出了一个包含正确内容的 SO 帖子:iPhone 中的“打开方式”某些应用程序如何工作?

4

1 回答 1

3

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

如果您在 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 当前的限制使得无法从共享扩展中打开包含的应用程序。

于 2015-01-04T20:59:46.330 回答