我的团队正在考虑开发电视,并考虑设计一个量身定做的“10英尺用户界面”,在电视机上以不同的方式呈现我们的内容。
我认为在这一点上发生这种情况的唯一方法是嗅探用户代理,以检测用户来自何处。我发现有一些用户代理可以用于电视,例如:
AppleTV:
User-Agent: iTunes-AppleTV/4.1
谷歌电视:
Mozilla/5.0 (Linux; GoogleTV x.x.x; LG Google TV Build/000000) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Safari/534.24
但是,除非我们必须使用,否则我们不想使用用户代理。
在经常提到的这篇文章中,使用用户代理进行浏览器检测坚决反对使用用户代理嗅探来提供特殊的内容,建议人们更多地使用特征检测。
在电视浏览器/系统上是否有单一的、稳定的、受良好支持的功能,很容易被检测到?如果是的话,它会是什么?
发布于 2013-04-09 15:00:01
由于目前还没有识别浏览器的标准,所以经常使用用户代理。如果要避免这样做,可以尝试使用导航器对象,如下所示:
var browser = navigator.appName;
var version = navigator.appVersion;
发布于 2013-04-09 19:49:50
推荐的方法是使用用户代理。这篇文章的第一个答案提出了一种很好的辅助方式。
那里提供的小提琴在我测试过的Vizio盒子上运行得很好。
变量isGoogleTv = true;var allResults = '';函数tryTest(name,testResult) { var结果= (testResult?allResults += '‘+ name + '';isGoogleTv = isGoogleTv & testResult;}函数renderResults() { document.write('');document.write(allResults);document.write('');if (isGoogleTv) { document.write(’)
探测到谷歌电视!
}{ document.write(‘)
不是谷歌电视!
‘;} tryTest('is user-agent GoogleTV',Google(’is platform Win‘),navigator.userAgent.match(/(大屏幕)x GoogleTV/i);tryTest('is opera',Google(window.opera==undefined));tryTest(’非IE6+',Google(!(document.compatMode && document.all);tryTest('is platform Win',!navigator.platform.match(/Win/));tryTest('is platform‘,布尔(navigator.vendor.match(/Google/);tryTest(‘不是IE',false);renderResults();
https://stackoverflow.com/questions/15901697
复制相似问题