Поделиться расширением Получить веб-URL - PullRequest
0 голосов
/ 04 марта 2019

Я создаю расширение для общего доступа iOS, которое принимает разные типы данных, и веб-URL является одним из них.

Открываем Safari на iPhone и нажимаем кнопку «Поделиться», затем выбираем расширение общего доступа в меню,приведет к открытию всплывающего окна по умолчанию для расширения общего доступа (shareviewcontroller, унаследованного от SLComposeServiceViewController) с заголовком страницы в качестве значения contentText (доступно только для чтения, если вы не знаете).

Вы можете получить URLиспользуя следующий метод:

NSExtensionContext *extensionContext = self.extensionContext;
NSArray *userInputArray = extensionContext.inputItems;
for (NSExtensionItem *extensionItem in userInputArray) {
    for (NSItemProvider * itemProvider in extensionItem.attachments) {
        if ([itemProvider hasItemConformingToTypeIdentifier:@"public.url"]) {
            [itemProvider loadItemForTypeIdentifier:@"public.url"
                                            options:nil
                                  completionHandler:^(NSURL *url, NSError *error) {
                                      NSString *urlString = url.absoluteString;
                                  }];
        }
    }
}

У меня есть вопрос: как мне задать для contentText абсолютную ссылку?То есть, как отобразить URL страницы вместо заголовка страницы.

Единственное, о чем я могу думать, это сделать в обработчике завершения:

NSString *urlString = url.absoluteString;
dispatch_async(dispatch_get_main_queue(), ^{
    [self.textView setText:urlString];
});
...