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

时间:2015-01-04 10:50:08

标签: ios8 ios8-share-extension

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

  

讨论:   每个扩展点确定是支持此方法,还是支持此方法的条件。在iOS 8.0中,只有Today扩展点支持此方法。

那么在选择通过电子邮件共享文件后如何打开我的应用程序? Dropbox就是这样做的,而Maps.me就是这样做的,所以必须有办法。

修改:共享扩展程序不是解决此问题的方法。在评论中,汤姆向我指出了一个带有正确内容的SO帖子:How does "Open With" some app in iPhone work?

1 个答案:

答案 0 :(得分: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目前的限制使得无法从共享扩展程序中打开包含应用程序。