gpt4 book ai didi

swift - 从 UIWebView 在 Safari 中打开链接

转载 作者:行者123 更新时间:2023-11-28 08:18:48 25 4
gpt4 key购买 nike

我想做的是在 Safari 中打开一个网站,方法是让用户单击显示在我的 UIWebView 中的链接。

我首先通读以下问题/答案: Open specific link in Safari from UIWebView

之后我执行了以下操作:

class HomeInfoView: UIViewController, UIWebViewDelegate{

override func viewDidLoad() {
super.viewDidLoad()

let localfilePath = NSBundle.mainBundle().URLForResource("homeInfo", withExtension: "html");
let myRequest = NSURLRequest(URL: localfilePath!);
WebViewer.loadRequest(myRequest);
WebViewer.scrollView.bounces = false
}


func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
if let url = request.URL where navigationType == UIWebViewNavigationType.LinkClicked {
UIApplication.sharedApplication().openURL(url)
return false
}
return true
}

然而,当尝试使用链接时,我仍然遇到错误

“App Transport Security 已阻止明文 HTTP (http://) 资源加载,因为它不安全。可以通过应用的 Info.plist 文件配置临时异常(exception)。”

我想我已经完成了 90%,但我不确定如何编辑我的 .plist 以允许异常(exception)。或者如果还有其他我错过的东西。

(我会把它作为评论添加到原始帖子,但我的排名还不够高)

最佳答案

您需要在您的 info.plist 中授予对该特定域的权限:

<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>testdomain.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<false/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<true/>
<key>NSThirdPartyExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSRequiresCertificateTransparency</key>
<false/>
</dict>
</dict>
</dict>

您 plist 中的此信息基本上会在您的应用程序中设置一个异常(exception)。它允许您访问 testdomain.com 域(插入您尝试访问的任何域)。它允许您访问所有子域,然后设置最低 TLS 版本以帮助确保您连接到的站点是您想要的站点。

或者您可以简单地允许访问所有 http 网站,但不推荐这样做。

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

不推荐这样做,因为它允许您的应用访问任何 http://域,这可能是一个安全问题,因为它会使您的应用容易受到中间人攻击。

查看 Apple 的文档以获取更多信息。 https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33

关于swift - 从 UIWebView 在 Safari 中打开链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41834396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com