Safari 扩展上的应用程序传输安全

2024-02-09

我的应用程序扩展需要打开许多网站的 URL。我这样做:

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,但此时我收到此错误:

应用程序传输安全性已阻止明文 HTTP (http://) 资源加载,因为它不安全。可以通过应用程序的 Info.plist 文件配置临时例外。

我尝试完全关闭ATS,

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key> <true/>
    </dict>

但它不起作用,而且我无法列出 NSExceptionDomain 内的网站。我在模拟器和设备上尝试过。有人可以帮忙吗?

EDIT

我认为导致问题的代码是这样的:

NSString* htmlString = [NSString stringWithContentsOfURL: url encoding:NSUTF8StringEncoding]

我在 url log 之后使用这行代码来获取纯文本的 html。


您是否添加了NSAppTransportSecurity应用扩展的字典信息表文件,或者只是在父应用程序的信息表文件?因为如果扩展程序正在发出请求,则异常需要位于扩展程序的信息表 file.

如果这没有帮助,请尝试使用NSURLConnection直接看看有什么区别。我怀疑它会,但可能值得一试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Safari 扩展上的应用程序传输安全 的相关文章

随机推荐