使用共享扩展程序后需要打开我的应用程序。就像Dropbox和Maps.me一样
问题描述:
我在我的扩展中用context.openURL试过了,但是被Apple阻止了。 这是他们的文档是这么说:使用共享扩展程序后需要打开我的应用程序。就像Dropbox和Maps.me一样
讨论: 每个扩展点确定是否支持此方法,或在何种条件下,以支持此方法。在iOS 8.0中,只有今日扩展点支持此方法。
那么在选择共享电子邮件中的文件后,如何打开我的应用程序? Dropbox做到了,而Maps.me做到了,所以一定有办法。
编辑:共享扩展不是解决这个问题的方法。在评论中,汤姆用正确的东西指向我SO帖子: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
苹果目前的限制使得无法从共享扩展中打开包含应用程序。
那么,如果我给自己发送一封包含KML文件的电子邮件,我可以使用ios的共享功能'在maps.me中打开'或'在Dropbox中打开'。你觉得他们用了什么? – P5ycH0 2015-01-05 06:03:01
不共享额外资讯。 “open with”功能在很多地方都有描述,例如[在StackOverflow中](http://stackoverflow.com/questions/4517092/how-does-open-with-some-app-in-iphone-work )。现在,请您根据您的错误假设删除您的[downvote?](http://stackoverflow.com/questions/27506413/share-extension-to-open-host-app/27517554#27517554) – 2015-01-05 17:45:43
谢谢非常多汤姆。那个评论帮助了我。猜猜我太专注于扩展的东西来搜索在这里打开。再次感谢。 – P5ycH0 2015-01-05 18:32:23