Tôi có mã sau để đọc trong URL được truyền. Tôi đang thử nghiệm này với ứng dụng Pocket
và mặc dù hasItemConformingToTypeIdentifier
đang trở lại YES cho kUTTypeURL
, cố gắng để tải nó trong lợi nhuận một lỗi thay vì nêuChia sẻ Tải tiện ích mở rộngItemForTypeIdentifier trả về lỗi cho NSURL
"class giá trị bất ngờ."
. Nếu tôi cố tải nó dưới dạng một mục id<NSSecureCoding>
và gỡ lỗi, tôi thấy rằng đối tượng được truyền vào thực sự chỉ là tiêu đề của trang chứ không phải là URL. Làm cách nào để đọc 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];
}
}];
}
}
}
Tính năng này có hoạt động đúng không nếu bạn thử nghiệm bằng Safari thay vì Pocket? –
Có, thực tế nó hoạt động với tất cả các ứng dụng khác chia sẻ liên kết/URL, v.v. Bằng cách nào đó có vấn đề với Pocket. Điều thực sự kỳ lạ là làm thế nào nó vượt qua điều kiện 'if' đầu tiên nhưng sau đó trong điều kiện thứ hai nó không lấy được một URL hợp lệ, thay vì trả lại tiêu đề của trang dưới dạng văn bản thuần túy. Tôi thậm chí đã thử nhiều loại dữ liệu khác như NSData v.v., nhưng tất cả đều trả về nil hoặc tiêu đề của trang. Tôi không thấy các ứng dụng khác, như Wunderlist, có thể đọc URL từ Pocket đúng cách như thế nào. – strangetimes
@strangetimes - Bạn đã bao giờ tìm thấy giải pháp cho điều này chưa? Tôi đã chỉ chạy vào vấn đề này chính xác cùng và đã đập đầu của tôi chống lại bàn phím của tôi cố gắng tìm ra cách các ứng dụng khác đang nhận được URL ra khỏi Pocket. – jrtilson