ios - 为什么 WKWebView 不显示视频? - swift 3

标签 ios swift nslayoutconstraint wkwebview

我在 viewController 中(在 viewDidLoad() 中)以编程方式成功添加了一个 WKWebView。当加载包含视频的 url 时,它看起来很好,但是当我尝试点击它(播放它)时,我看不到它,但音频工作正常。

奇怪的是我创建了一个新项目只是为了确保它能正常工作并且确实如此,我复制了与 webView 显示视频完全相同的代码。

在转换为 Swift 3 之前它工作正常。

这是点击视频时的样子:

点击前:

enter image description here

点击后:

enter image description here

我还尝试了另一个网页:

点击前:

enter image description here

点击后(注意状态栏现在隐藏):

enter image description here

简单地说,这是代码:

override func viewDidLoad() {
    super.viewDidLoad()

    let web = WKWebView(frame: view.frame)
    let urlRequest = URLRequest(url: URL(string: "http://www.w3schools.com/html/html5_video.asp")!)       
    web.frame = view.frame
    web.load(urlRequest)

    view.addSubview(web)
 }

我尝试检查许多没有任何输出的情况。我错过了什么?

提前致谢。

最佳答案

初始化webview时,需要传入两个配置属性。示例:

let webConfiguration = WKWebViewConfiguration()
    webConfiguration.allowsInlineMediaPlayback = true
    webConfiguration.mediaTypesRequiringUserActionForPlayback = []

    webView = WKWebView(frame: .zero, configuration: webConfiguration)

您还需要在 info.plist 中允许任意加载:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoadsForMedia</key>
    <true/>
</dict>

关于ios - 为什么 WKWebView 不显示视频? - swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40105852/

相关文章:

ios - 以编程方式使用 Autolayout 布局自定义 UITableViewCell

ios - 从选项卡栏 Controller 以模态方式呈现 View Controller

ios - 删除单元格时索引超出范围

ios - 如何在 Swift 中检索约束常量的值?

ios - 动画 subview AutoLayout 约束更改

ios - SwiftUI HStack slider 不出现

ios - 在 Swift 中扩展 UIGestureRecognizer

ios - 如何将 `NSLayoutYAxisAnchor` 用作变量?

ios - 针对 APP 或 IPA 文件运行 Appium 测试?

ios - 录制视频并上传到 Firebase