在iOS上的Safari的共享扩展中获取SLComposeServiceViewController中的URL

在iOS上的Safari的共享扩展中获取SLComposeServiceViewController中的URL,第1张

概述这个问题之前可能已经以不同的形式提出过,但我正在尝试稍微深入一点地理解共享扩展,因此,这个问题比之前提出的问题版本更详细. 在编写Share扩展时,我们可以继承SLComposeServiceViewController并获取viewDidLoad()和didSelectPost()事件等,但VC上的唯一属性是contentText和textView以及根据Apple文档的占位符属性 https: 这个问题之前可能已经以不同的形式提出过,但我正在尝试稍微深入一点地理解共享扩展,因此,这个问题比之前提出的问题版本更详细.

在编写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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1107493.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存