WKWebView无法在iframe中显示YouTube视频

3

我正在尝试在iOS 9下使用WKWebView,其中一个页面中有一个嵌入式的Youtube视频。但是视频无法显示。相同的视频在Safari中可以正常播放,因此这似乎不是iOS的问题。我猜测我可能错过了视图中的某个配置选项。示例URL为http://www.w3schools.com/html/tryit.asp?filename=tryhtml_youtubeiframe

import UIKit
import WebKit

class ViewController: UIViewController, WKNavigationDelegate
{
    var webView : WKWebView!

    override func viewDidLoad()
    {
        super.viewDidLoad()

        let webviewConfiguration                       = WKWebViewConfiguration()
        webviewConfiguration.allowsInlineMediaPlayback = true
        webviewConfiguration.preferences.javaScriptCanOpenWindowsAutomatically = true
        webviewConfiguration.allowsAirPlayForMediaPlayback       = true
        webviewConfiguration.allowsPictureInPictureMediaPlayback = true
        webviewConfiguration.requiresUserActionForMediaPlayback  = false
        webView                    = WKWebView(frame: self.view.bounds,
            configuration: webviewConfiguration)
        webView.navigationDelegate = self
        self.view                  = webView
        let url = NSURL(string: "http://www.w3schools.com/html/tryit.asp?filename=tryhtml_youtubeiframe")
        let req = NSURLRequest(URL: url!)
        self.webView!.loadRequest(req)
    }

    override func didReceiveMemoryWarning()
    {
        super.didReceiveMemoryWarning()
    }

    func webView(webView: WKWebView,
        didFailNavigation navigation: WKNavigation!,
        withError error: NSError)
    {
        print("didFailNavigation \(error)")
    }

    func webView(webView: WKWebView,
        didFailProvisionalNavigation navigation: WKNavigation!,
        withError error: NSError)
    {
        print("didFailProvisionalNavigation  \(error)")
    }
}
1个回答

3

前往项目的 info.plist 文件 添加一个名为 NSAppTransportSecurity 的字典键。 添加一个名为 NSAllowsArbitraryLoads 的布尔子键,并将其值设置为 YES。它可以正常工作。enter image description here


糟糕!谢谢提醒。我为服务器添加了异常处理,但没有意识到Youtube也是http并需要一个异常处理...真是漫长的一天 :-) 如果苹果在这种情况下报错就好了! - TofuBeer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接