Моему расширению приложения необходимо открыть URL-адрес с многих веб-сайтов. Я делаю следующим образом:App Transport Security на расширении Safari
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 *url, NSError *error) {
NSLog(@"URL: %@",url);
я могу получить URL, но в этот момент я получил эту ошибку:
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
Я попытался полностью выключить АТС,
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key> <true/>
</dict>
но он не работает, и я не могу перечислять веб-сайты внутри NSExceptionDomain. Я пробовал на симуляторе и на устройстве. Кто-нибудь может помочь?
EDIT
я думаю, что код, который вызывает вопрос, что это:
NSString* htmlString = [NSString stringWithContentsOfURL: url encoding:NSUTF8StringEncoding]
Я использую эту строку кода после входа URL-адрес, чтобы получить HTML как простой текст.
Спасибо за ваш ответ, но он не работает для меня. Это значение в plist установлено в YES, и я попробовал ваш метод, чтобы получить html, но он возвращает null мне – Totka
@Totka Я предполагаю, что вы пробовали этот URL-адрес в ios8, и он работает. Я обнаружил, что иногда добавление «s» к http заставляет его работать на ios9. –