【发布时间】:2015-02-04 17:00:29
【问题描述】:
我有以下代码可以读取传递的 URL。我正在使用Pocket 应用程序对此进行测试,虽然hasItemConformingToTypeIdentifier 为kUTTypeURL 返回“是”,但尝试将其加载会返回错误而不是说明
“意外的值类。”
。如果我尝试将其加载为id<NSSecureCoding> 项目并进行调试,我发现传入的对象确实只是页面的标题而不是 URL。如何阅读网址?
NSURL *pageURL = nil;
for (NSExtensionItem *item in self.extensionContext.inputItems) {
for (NSItemProvider *itemProvider in item.attachments) {
if ([itemProvider hasItemConformingToTypeIdentifier: (NSString*) kUTTypeURL]) {
[itemProvider loadItemForTypeIdentifier:(NSString*) kUTTypeURL options:nil completionHandler:^(id <NSSecureCoding> urlItem, NSError *error) {
if ([((NSObject*)urlItem) isKindOfClass: [NSURL class]]) {
pageURL = [((NSURL*)urlItem) absoluteString];
}
}];
}
}
}
【问题讨论】:
-
如果你用 Safari 代替 Pocket 测试它是否正常工作?
-
是的,它确实适用于所有其他共享链接/ URL 等的应用程序。不知何故,Pocket 存在问题。真正奇怪的是它如何通过第一个“if”条件,但在第二个条件中它未能获取有效的 URL,而是将页面标题作为纯文本返回。我什至尝试了各种其他数据类型,如 NSData 等,但它们要么返回 nil,要么返回页面标题。我看不到 Wunderlist 等其他应用程序如何能够正确读取 Pocket 中的 URL。
-
@strangetimes - 你有没有找到解决方案?我刚刚遇到了同样的问题,并且一直在敲击我的键盘,试图弄清楚这些其他应用程序是如何从 Pocket 中获取 URL 的。
-
@jrtilson 很遗憾没有 - 我只是放弃了。从来没有找到解决方案,我也没有得到 devs@pocket 应用程序的回复。不值得花几个小时敲打我的脑袋让我无处可去。
标签: ios objective-c ios8-share-extension