在编写Share扩展时,我们可以继承SLComposeServiceVIEwController并获取vIEwDIDLoad()和dIDSelectPost()事件等,但VC上的唯一属性是contentText和textVIEw以及根据Apple文档的占位符属性
https://developer.apple.com/library/prerelease/ios/documentation/Social/Reference/SLComposeServiceViewController_Class/
鉴于这种情况,执行以下 *** 作的最佳方式是什么:
首先,使用网站的URL填充显示的VC
其次,访问URL以传递给sharedDefaults,如下所示
let shareDefaults = NSUserDefaults(suitename: "groupname")shareDefaults?.setobject(self.contentText,forKey: "stringKey")shareDefaults?.synchronize()
以便能够保存它以便以后从应用程序访问.
任何有关获取URL的帮助将不胜感激.
解决方法 您可以像这样访问URL:- (voID)dIDSelectPost { NSExtensionItem *item = self.extensionContext.inputItems.firstObject; NSItemProvIDer *itemProvIDer = item.attachments.firstObject; if ([itemProvIDer hasItemConformingToTypeIDentifIEr:@"public.url"]) { [itemProvIDer loadItemForTypeIDentifIEr:@"public.url" options:nil completionHandler:^(NSURL *url,NSError *error) { // Do what you want to do with url [self.extensionContext completeRequestReturningItems:@[] completionHandler:nil]; }]; }}
Swift中的情况也是如此:
overrIDe func dIDSelectPost() { if let item = extensionContext?.inputItems.first as? NSExtensionItem { if let itemProvIDer = item.attachments?.first as? NSItemProvIDer { if itemProvIDer.hasItemConformingToTypeIDentifIEr("public.url") { itemProvIDer.loadItemForTypeIDentifIEr("public.url",options: nil,completionHandler: { (url,error) -> VoID in if let shareURL = url as? NSURL { // do what you want to do with shareURL } self.extensionContext?.completeRequestReturningItems([],completionHandler:nil) }) } } } }总结
以上是内存溢出为你收集整理的在iOS上的Safari的共享扩展中获取SLComposeServiceViewController中的URL全部内容,希望文章能够帮你解决在iOS上的Safari的共享扩展中获取SLComposeServiceViewController中的URL所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)