Youtube 嵌入实时聊天不适用于移动设备(最近)
Youtube embed live chat is not working on mobile (recently)
我正在开发一个依赖 YouTube 直播和实时聊天(也来自 YouTube)的网络应用。事情进展顺利,突然嵌入的聊天功能无法在移动设备上运行。
我试图在我这边找到一个错误或一些无效的配置,但我找不到。据我所知,当 "Mobile" 语句出现在 User-Agent header.
上时,带有聊天功能的 iframe 无法正确加载
This is a request that's not called on mobile
This image shows that chat is capable of working fine on mobile
The same window but with "Mobile" header
这很奇怪,因为当我将 WebView 中的 User-Agent header 更改为桌面时,一个聊天功能正常运行:
Android WebView with Desktop User-Agent header
貌似移动端请求被屏蔽了,桌面端没有,但我不知道为什么。我找不到任何关于它的 Youtube 或 Google 声明。
我认为解决它的唯一方法是将前面提到的 "User-Agent" header 中的 HTTP 请求更改为桌面请求,例如:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36
也许有一天这个问题会在 YouTube 方面得到解决。
这似乎是由于 YouTube 用户为其频道选择了用户名 "live_chat",这与 YouTube 自己的聊天嵌入代码冲突。
在使用他们的反馈选项向 YouTube 报告问题并附上用户频道的屏幕截图后,YouTube 在 24 小时内解决了问题!
现在可以在 Android 设备上嵌入 YouTube 的实时聊天,无需在 Chrome 中请求网站的桌面版本或以任何方式更改用户代理!
我正在开发一个依赖 YouTube 直播和实时聊天(也来自 YouTube)的网络应用。事情进展顺利,突然嵌入的聊天功能无法在移动设备上运行。
我试图在我这边找到一个错误或一些无效的配置,但我找不到。据我所知,当 "Mobile" 语句出现在 User-Agent header.
上时,带有聊天功能的 iframe 无法正确加载This is a request that's not called on mobile
This image shows that chat is capable of working fine on mobile
The same window but with "Mobile" header
这很奇怪,因为当我将 WebView 中的 User-Agent header 更改为桌面时,一个聊天功能正常运行:
Android WebView with Desktop User-Agent header
貌似移动端请求被屏蔽了,桌面端没有,但我不知道为什么。我找不到任何关于它的 Youtube 或 Google 声明。
我认为解决它的唯一方法是将前面提到的 "User-Agent" header 中的 HTTP 请求更改为桌面请求,例如:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36
也许有一天这个问题会在 YouTube 方面得到解决。
这似乎是由于 YouTube 用户为其频道选择了用户名 "live_chat",这与 YouTube 自己的聊天嵌入代码冲突。
在使用他们的反馈选项向 YouTube 报告问题并附上用户频道的屏幕截图后,YouTube 在 24 小时内解决了问题!
现在可以在 Android 设备上嵌入 YouTube 的实时聊天,无需在 Chrome 中请求网站的桌面版本或以任何方式更改用户代理!