【发布时间】:2017-11-11 22:54:35
【问题描述】:
在此 get 因重复而被击落之前,事实并非如此。这里几乎所有关于 WKWebView 的问题都是关于 iOS 应用程序中的 WKWebView,而不是 macOS 应用程序,不同之处几乎只是实现了 UIViewController 接口而不是 macOS 中的 NSViewController 接口。
Apple 文档中的示例代码以及可在网上找到的控制器代码不起作用。尽管它确实可以毫无问题地编译,但 webview 仍然处于非活动状态。
有什么我没看到的还是 WKWebView 中的错误?
我什至从教程中复制了一些代码,展示了如何为 iOS 执行此操作,只是将 UIViewController 更改为 NSViewController(因为这是唯一的区别),但它不起作用。
ViewController.swift 中的以下代码不起作用。
如果是 class ViewController: NSViewController, WKUIDelegate
import Cocoa;
import WebKit;
class ViewController: NSViewController {
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let url=URL(string: "http://safetec-cam.biz/images/webcam_extern/bad-nauheim_bahnhof_west.jpg");
webView.load(URLRequest(url: url!));
}
}
如果这样用 UIViewController 换成 NSViewController 也行不通 image from https://developer.apple.com/documentation/webkit/wkwebview
【问题讨论】:
-
这应该可以,我正在使用类似的东西。您确定问题不在其他地方,例如 ATS 或与网络相关的东西会阻止请求吗?
-
不知道您所说的 ATS 是什么意思,但我确实安装了 LittleSnitch(防火墙)。我在关闭 LittleSnitch 的同时尝试了它。不用找了。然后我用谷歌而不是网络摄像头网址进行了尝试。立即工作。不知道为什么。网络摄像头链接在 Firefox 中运行顺利。无论如何,感谢您的快速答复。我将编辑主要帖子以清除它。
-
啊好吧。谢谢,为链接。我尝试了那里的建议。我将 NSAppTransportSecurity 字典和 NSAllowsArbitraryLoads 项添加到 Info.plist。它立即解决了问题。
-
太酷了! :) 那么我想您会同意将您的问题作为 ATS 的副本来结束吗?这对于在搜索此内容时使用与您的问题中相同类型的关键字的人可能很有用。
标签: swift xcode macos wkwebview nsviewcontroller