我正在开发一个依赖于YouTube直播和实时聊天(也来自YouTube(的网络应用程序。事情进展顺利,突然嵌入的聊天拒绝在移动设备上运行。
我试图在我这边找到一个错误或一些无效的配置,但我找不到。据我所知,当用户代理标头上存在"移动"语句时,带有聊天的iframe无法正确加载。
这是未在移动设备上调用的请求
此图显示聊天能够在移动设备上正常工作
相同的窗口,但带有"移动"标题
这很奇怪,因为当我将 WebView 中的用户代理标头更改为桌面时,一个聊天工作完美:
带有桌面用户代理标头的 Android WebView
看起来移动请求被阻止而桌面请求没有,但我不知道为什么。我找不到任何关于它的Youtube或Google声明。
修复它的唯一方法是将前面提到的HTTP请求中的"User-Agent"标头更改为桌面标头,例如:
Mozilla/5.0 (Windows NT 10.0;赢64;x64( AppleWebKit/537.36 (KHTML, like Gecko( Chrome/60.0.3112.78 Safari/537.36
也许有一天这个问题会从YouTube方面得到解决。
似乎是由于YouTube上的用户为其频道选择用户名"live_chat"引起的,该用户名与YouTube自己的聊天嵌入代码冲突。
使用他们的反馈选项向 YouTube 报告问题并包括用户频道的屏幕截图后,YouTube 在 24 小时内解决了这个问题!
现在,嵌入YouTube的实时聊天可以在Android设备上运行,而无需在Chrome中请求该网站的桌面版本或以任何方式更改用户代理!