【发布时间】:2018-11-05 21:26:30
【问题描述】:
YouTube 直播聊天可在桌面上使用
<iframe src="https://youtube.com/live_chat?v=[LIVE VIDEO ID]"></iframe>
但是,它不会出现在使用相同代码的移动设备上。
我已将问题缩小到似乎是用户代理问题。在桌面上使用 Chrome 测试网站的移动版本时(检查元素 > 手机图标 > iphonex > 刷新),它仍然没有出现。但是当我在 chromes iPhone(inspect element-ed)版本上更改用户代理并刷新时,它会显示出来(inspect element > network conditions > user agent)。
作为备份,这个关于用户代理的声明,我可以在互联网上找到的唯一其他线程(找到Here)谈论它是如何为他修复的(或者可能不是?)。当我尝试实施他的解决方案时,我没有得到任何结果。
我现在尝试使用 PHP 和 JavaScript 更改用户代理,但它们都不能在 iPhone 的 Safari 或 Google Chrome iPhone 上运行(检查元素)。
我也尝试过使用 PHP 重新创建嵌入,但失败并出现多个 404 错误。
这很奇怪,因为当我通过检查元素版本更改用户代理时,它可以工作。
我已经尝试在 JavaScript 中更改用户代理
//First Try
Object.defineProperty(navigator, 'userAgent', {
get: function () { return 'Mozilla/5.0 (Windows NT 6.2; WOW64;
rv:28.0) Gecko/20100101 Firefox/28.0)'; }});
//Second Try
navigator.__defineGetter__('userAgent', function () {
return "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0)"});
//Third Try
var xhr = new XMLHttpRequest(...);
xhr.setRequestHeader("User-Agent","test");
我试过用 PHP 改变它
ini_set('user_agent', 'MyBrowser v42.0.4711');
这让我相信我在所有这些方面都设置错了,我忘记了另一个因素,或者移动设备无法支持它。
但是,如果手机无法设置它,它会向我显示一条消息。在 PHP 中设置 User-Agent 时,什么都没有发生,直到我请求桌面站点,它给了我一条消息,类似于
Your browser is too old to use livechat
不确定是不是真的,或者只是用户代理。
我愿意使用 YouTubeLivestreamingChat API,但我真的不知道如何使用它(具体来说是什么部分)。我也愿意接受 PHP 或 JavaScript 的解决方案。
【问题讨论】:
-
嵌入 YouTube 实时聊天功能但不能在移动设备上运行:stackoverflow.com/a/59349138/470749
标签: javascript php html youtube youtube-livestreaming-api