str*_*mes 8 objective-c ios ios8-share-extension
我有以下代码来读取传递的URL.我正在使用Pocket应用程序进行测试,虽然hasItemConformingToTypeIdentifier返回YES kUTTypeURL,尝试加载它返回错误而不是说明
"意外的价值等级."
.如果我尝试将其作为id<NSSecureCoding>项目和调试加载,我发现传入的对象确实只是页面的标题而不是URL.我如何阅读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];
}
}];
}
}
}
Run Code Online (Sandbox Code Playgroud)
尝试这个
__block 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:^(NSURL *urlItem, NSError *error) {
if (urlItem) {
pageURL = urlItem;
}
}];
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果您想获取当前网站的 URL,请使用
NSString *output = [pageURL absolutestring];
输出 - 将是您的 URL。