
NSExtensionAttributesNSExtensionActivationRule NSExetnsionActivationSupportsWebURLWithMaxCount NSExetnsionActivationSupportsWebPageWithMaxCount解决方法 我不确定为什么NSExtensionActivationSupportsText不适用于Maps,但是当我尝试时我得到相同的结果.
您需要的是更复杂的激活规则.将激活规则的类型设置为“string”,并使用App Extension Programming Guide中描述的SUBquery格式设置值.执行此 *** 作时,您可以请求一个或多个特定UTI.地图将提供纯文本(public.plain-text),它应该等同于NSExtensionActivationSupportsText,但显然不是.它还提供位置卡(public.card)和URL(public.url).
UTI检查其中任何一个的激活规则看起来像
SUBquery(extensionItems,$extensionItem,SUBquery($extensionItem.attachments,$attachment,ANY $attachment.registeredTypeIDentifIErs UTI-CONFORMS-TO "public.plain-text").@count >= 1).@count >= 1 OR SUBquery(extensionItems,SUBquery($attachment.registeredTypeIDentifIErs,$uti,$uti UTI-CONFORMS-TO "public.url" AND NOT $uti UTI-CONFORMS-TO "public.file-url").@count >= 1).@count >= 1).@count >= 1 OR SUBquery(extensionItems,ANY $attachment.registeredTypeIDentifIErs UTI-CONFORMS-TO "public.vcard").@count >= 1).@count >= 1
这只是三个SUBquery子句,用于检查每个UTI,或者一起进行ORTI.
根据您可以处理的数据,您可能希望减少它以仅涵盖您的扩展程序知道如何处理的UTI.例如,如果您想要的只是URL,则只使用该部分:
SUBquery(extensionItems,$uti UTI-CONFORMS-TO "public.url" AND NOT $uti UTI-CONFORMS-TO "public.file-url").@count >= 1).@count >= 1).@count >= 1
此版本仅检查您是否获得了不是文件URL的URL.
地图提供的Apple地图网址类似于http://maps.apple.com/?q=37.332331,-122.031219
如果使用vcard UTI,则会将Nsstring编码为NSData.如果你解码它,它看起来像这样:
BEGIN:VCARDVERSION:3.0PRODID:-//Apple Inc.//iOS 8.2//ENN:;Shared Location;;;FN:Shared Locationitem1.ADR;type=HOME;type=pref:;;;;;;item2.URL;type=pref:http://maps.apple.com/?q=37.332331\,-122.031219&sll=37.332331\,-122.031219item2.X-ABLabel:map urlEND:VCARD总结
以上是内存溢出为你收集整理的iOS在地图上添加共享扩展全部内容,希望文章能够帮你解决iOS在地图上添加共享扩展所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)