如何在 UIWebView 或 WKWebView 中播放 facebook 视频

How to play facebook video in UIWebView or WKWebView

我正在尝试在 UIWebView 中使用 facebook 的嵌入式视频播放器。

以下代码在 chrome、safari、移动 safari 和 firefox 中有效,但在 UIWebView 或 WKWebView 中加载时无法播放

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
</head>
<body>
<div id="fb-root"></div>
<script>(function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) return;
     js = d.createElement(s); js.id = id;
     js.src = "http://connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v2.6";
     fjs.parentNode.insertBefore(js, fjs);
     }(document, 'script', 'facebook-jssdk'));</script>

<div class="fb-video" data-href="https://www.facebook.com/bhanengtattoo/videos/vb.100000856281223/967837953254738/?type=3" data-width="500" data-show-text="false">
    <div class="fb-xfbml-parse-ignore">
        <blockquote cite="https://www.facebook.com/bhanengtattoo/videos/967837953254738/"><a href="https://www.facebook.com/bhanengtattoo/videos/967837953254738/"></a><p>Some placholder text</p>Posted by <a href="#" role="button">Bhaneng Venus</a> on Friday, 30 October 2015</blockquote>
    </div>
</div>
</body>
</html>

应用程序传输设置配置为允许任意加载,加载后检查 webview 我可以看到 facebook sdk 已经下载并且对视频 div 进行了一些处理,现在包括一个 iframe正在嵌入 div。控制台没有js错误,也没有阻塞请求。

任何关于如何让它工作或进一步调试的建议都非常感谢。

我从应用程序本地托管的文件而不是 Web 服务器加载 html。下面的post似乎暗示facebook js使用了request的url,加载本地文件会出问题

https://developers.facebook.com/bugs/1683961658522966/

我能够通过将 base url 设置为“http://anythinghere.com” 加载 webview 来解决该问题。视频播放器现在可以正常工作了。