【问题标题】:Fullscreen mode is disabled for an embedded YouTube video in WKWebViewWKWebView 中嵌入的 YouTube 视频禁用全屏模式
【发布时间】:2019-01-02 13:22:50
【问题描述】:

我正在尝试将 YouTube 视频嵌入到以 WKWebView 加载的网页中。

这是页面来源:

let html = """
<html><head>
<title>YouTube Video</title>

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, shrink-to-fit=no, user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">

</head>
<body>
  Here is an embedded youtube video: <br/> 
  <iframe src="https://www.youtube.com/embed/oR-6N1Dc_zc?modestbranding=1&rel=0" frameborder="0" allowfullscreen></iframe> 
  <iframe src="https://player.vimeo.com/video/270611565" width="640" height="360" frameborder="0" allowfullscreen></iframe>
</body>
</html>
"""

WKWebView 的配置接近默认(allowsInlineMediaPlayback 已启用)。网页加载了webView.loadHTMLString(html, baseURL: nil)。

YouTube 播放器中的全屏模式按钮显示为灰色。当我点击它时,会显示以下消息:“您的浏览器不支持全屏。”:

如果我改用UIWebView,我会收到相同的消息。全屏模式似乎适用于嵌入的 Vimeo 视频(尽管 Vimeo 播放器似乎忽略了iframe 的allowfullscreen 属性)和使用&lt;video&gt; 标签嵌入的视频。当我从 YouTube 网站加载视频时,全屏模式可以工作(尽管它看起来更像某种模拟,而不是原生全屏模式)。

问题是:为什么禁用全屏模式?有办法启用吗?

【问题讨论】:

  • 我 99% 确定这是 Google 的政策决定,而不是您正在做的任何事情。奇怪的是,它(目前)可以在 iPhone 上运行,但在 iPad 上,他们似乎想把你推到应用程序上。
  • @Chris 我也有同样的怀疑,但我不是 100% 确定。
  • 很多其他人也得出了相同的结论,例如forums.macrumors.com/threads/can't-go-full-screen-while-watching-youtube-in-safari.2117748/ 和 forums.macrumors.com/threads/youtube-in-ios-safari.2113012
  • 它可能可以通过书签解决,但期望您的用户进行配置可能是不合理的。
  • @AndriiChernenko 你试过 iamszabo 回答吗?它对我有用。

标签: ios youtube wkwebview


【解决方案1】:

您可以通过禁用内联媒体来解决此问题。

let webViewConfiguration = WKWebViewConfiguration()
webViewConfiguration.allowsInlineMediaPlayback = false
WKWebView(frame: .zero, configuration: webViewConfiguration)

【讨论】:

    猜你喜欢
    • 2012-05-16
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 2012-06-26
    • 2017-09-03
    • 1970-01-01
    相关资源
    最近更新 更多