此问题以前可能以其他形式提出过,但是我尝试更深入地尝试理解共享扩展,因此,此问题比以前提出的版本更详细。
[编写共享扩展名时,我们可以将SLComposeServiceViewController子类化,并获取viewDidLoad()和didSelectPost()事件,但根据Apple文档,VC上唯一的属性是contentText和textView和占位符属性
鉴于是这种情况,执行以下操作的最佳方法是什么:
首先,使用网站的网址填充显示的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];
}];
}
}