我已经浏览了许多关于这个问题的不同帖子,但无法找到解决我的问题的方法。我创建了一个 webview iOS 应用程序,显示 AWS 中托管的某个域。我已经使用本地 IP 对此进行了测试,并且运行良好,还使用另一个可以运行但我的域未加载的网站进行了测试。我在 xcode 中唯一的错误是
0x112821620 - [pageProxyID=6, webPageID=7, PID=14,946] WebPageProxy::didFailProvisionalLoadForFrame: frameID=1, isMainFrame=1, domain=NSURLErrorDomain, code=18,446,744,073,709,550,416, isMainFrame=1, willInternallyHandleFailure=0
虽然我尝试了很多不同的解决方案,但 webview 代码是基本的。我使用过 http 和 https,本地服务器还是 http,效果很好,只需在本地网络上即可。
我不介意分享我的代码,因为它是基本的且非专有的。
import UIKit
import WebKit
class ViewController: UIViewController, WKUIDelegate {
var webView: WKWebView!
override func loadView() {
let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.uiDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
let myURL = URL(string:"https://app.saiko.cloud/")
let myRequest = URLRequest(url: myURL!)
webView.load(myRequest)
}
}
我只是不确定还需要检查什么才能加载它。该应用程序似乎没有尝试建立与使用wireshark测试的域的连接。我假设都是 http/https 流量,并且我不需要 AWS 上的任何其他安全例外。
看起来已将其添加到信息中。
<key>NSAllowsArbitraryLoads</key><true/>
我认为这不是答案,因为当使用私有地址时它可以连接到本地 LAN 上的 http,iOS 必须能够做出这种区分。