我想为我的iOS 8应用程序(最好是一个动作扩展,但共享扩展也可以完成这项工作)进行扩展。
我希望可以从iTunes访问此扩展程序,以便我的用户可以将iTunes链接发送到我的应用程序。
但我只是无法弄清楚如何使这个扩展可从iTunes(并且只能从iTunes中获得)。
我试过NSExtensionActivationRule.NSExtensionActivationSupportsWebURLWithMaxCount,但它只是从Safari中激活我的扩展,而不是从iTunes中激活。
我不知道是否有一种方法可以通过谓词来实现,但我无法弄清楚如何构建一个可以检测iTunes“元素/链接”(缺乏更好的术语)的谓词。
有人有解决方案吗?NSExtensionActivationRule&iOS应用程序扩展:如何激活iTunes中的扩展程序
5
A
回答
13
来自AppStore/iTunes Store的NSExtensionItem应用程序实际上包含三种类型的附件,分别是图像,文本和URL。
您可以指定NSExtensionActivationRule到TRUEPREDICATE首先在发展,允许各种附件。
的AppStore的/ iTunes商店的应用程序要求延期的连接结构可以被记录为图像:
其结果是,你必须包括下列键在NSExtensionActivationRule您的扩展的Info.plist文件的:
- NSExtensionActivationSupportsImageWithMaxCount
- NSExtensionActivationSupportsText
- NSExtensionActivationSupportsWebURLWithMaxCount
更新:
如果你想限制可能指向显示您的扩展(仅适用于iTunes Store的工作),你可以使用“谓语句”对于更复杂的过滤器。
例如:
我要让我的分机只显示如果扩展名的附件满足以下条件:一个形象,一个纯文本和一个网址,这与上面的图像一致。我用以下预测:
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image"
)[email protected] == 1
)[email protected] == 1
&&
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url"
)[email protected] == 1
)[email protected] == 1
&&
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text"
)[email protected] == 1
)[email protected] == 1
我没有尝试附件里面的过滤器(仅网址中包含“itunes.apple.com”),但我想你可以使用预测限制点扩展显示并在你的视图控制器内部采取行动之前有更多的检查(不是完美的解决方案,但应该工作,如果没有更好的方法来检查附件内容。)
干杯!
相关问题
- 1. Facebook:应用程序扩展在iOS 8
- 2. NSExtensionActivationRule确切的一个图像或视频 - iOS应用程序扩展
- 3. 扩展应用程序
- 4. 扩展应用程序
- 5. 如何激活MSSQL扩展?
- 6. 如何在IOS动作扩展中托管应用程序发送数据到应用程序扩展
- 7. 如何识别Xamarin.iOS中的iOS应用程序扩展崩溃?
- 8. iOS共享扩展程序流程
- 9. Chrome扩展程序
- 10. 如何在ios应用程序扩展中上传
- 11. 如何从构建中排除IOS 8应用程序扩展?
- 12. 如何在iOS动作应用程序扩展中调试Javascript
- 13. 从iMessage应用程序扩展程序购买应用程序
- 14. 在Android中扩展应用程序类
- 15. 在Android中扩展类应用程序?
- 16. 托管扩展程序的应用程序必须遵守应用程序扩展编程指南
- 17. 如何在活动中使用非静态方法在MainActivity中扩展应用程序扩展活动
- 18. 使用应用程序扩展的Cocoapods
- 19. 如何从应用程序中删除ios今日扩展程序
- 20. 租用Chrome扩展程序?
- 21. Chrome扩展程序中硒
- 22. ASP.NET MVC 3应用程序的扩展?
- 23. 扩展打包应用程序的api?
- 24. 扩展托管的ASP.NET应用程序
- 25. Django扩展现有的应用程序
- 26. 扩展已安装的应用程序
- 27. 如何在Safari共享扩展上添加ios应用程序?
- 28. 如何从基础应用程序扩展到iOs
- 29. 今天如何从iOS 8打开应用程序扩展
- 30. 如何与扩展程序共享应用程序ID?
非常感谢,但我怎么能严格限制扩展到iTunes内容:以“itunes.apple.com”开头的网址和只有这些网址?我无法弄清楚我可以用于NSExtensionActivationRule的谓词,它可以完成这项工作。 – Frank 2014-12-22 12:46:55
嗨@Frank,请参阅我的更新。 – 2014-12-23 03:16:33
是的,就像iTunes的魅力一样,并且在几次测试后,似乎并没有出现在其他上下文中。非常感谢。 – Frank 2014-12-23 10:16:21