伪装成移动Safari,让网站在Mac OS X上为HTML5视频提供服务

iPad用户代理字符串技巧

首先,一些实用的建议在我上周的作品中关于从Mac OS X卸载Flash Player,我建议您在需要时使用Chrome作为后备内容来查看Flash内容这是有效的,因为Chrome使用自己独立的Flash版本,而不是系统版本这有效,但我已经为Safari找到了更好的解决方法。

首先,确保您已打开Safari的“开发”菜单(这是Safari首选项窗口“高级”面板中的一个复选框。)然后,每当您遇到声称需要Flash Player的视频播放器时,请调用开发→用户代理→Mobile Safari 3.2.2 - iPad命令这会重新加载当前页面,但Safari声称是在iPad上运行的Mobile Safari它不会改变Safari呈现页面的方式 - 也就是说,它不会使具有缩放或布局差异的桌面Safari渲染页面模仿Mobile Safari在iPad上呈现页面的方式它所做的就是告诉Safari将自己标识为服务器的Mobile Safari结果是,如果服务器执行任何类型的用户代理检测以确定是使用Flash还是HTML5提供视频,您将获得HTML5版本(维基百科提供一个好的门外汉的概述用户代理字符串。)

这个技巧使得视频在Mac OS X上的Safari中运行 - 没有Flash - 来自Flickr,Vimeo嵌入,TED,MSNBC,以及可能提供适用于iPad的视频的任何其他网站这不起作用所有视频,但它适用于在iPad上运行的任何视频。

我在“系统偏好设置”中为此菜单命令设置了自定义键盘快捷键。这是一个截图,显示如何设置它。请注意,菜单标题只是“Mobile Safari 3.2.2 - iPad”Even though it’s in a sub-menu, you don’t need to list the hierarchy of menus, just the name of the menu item itself, no matter how far nested it is您但是,需要完全正确地获取菜单项的名称从本段前面的句子中复制和粘贴它应该有效。

在Safari中切换这样的用户代理字符串时,它只会持续存在于该特定窗口中其他窗口仍然在Mac OS X上将自己标识为Safari您能够为Safari设置永久自定义用户代理字符串,但它需要默认命令行工具我不推荐这个 - 它打破了与Flash无关的其他事情1- 但是这是命令(您可以通过键入“撤消”默认删除com.apple.safari CustomUserAgent“在命令行。)

这适用于很多网站,表明Mac OS X上的Safari完全能够在网络上播放看似需要Flash的大量视频Web开发人员应该开始通过HTML5提供视频服务<视频>标签默认情况下,然后回到Flash,如果<视频>标签不受支持如果它在没有Flash的iPad上运行,它应该在没有Flash的Mac上运行。

政治

这不是关于政治,也不是关于事情应该如何的任何理想主义我从我的系统中删除了Flash,并建议你这样做,因为有两个事实:

  1. 如果没有安装Flash,我的Mac使用较少的环境CPU功率机器运行温度更低,速度更快,电池使用寿命更长。

  2. 通过HTML5视频标签而不是Flash Player播放的视频更流畅,耗电更少当我通过Flash播放720p视频时,我的MacBook Pro的粉丝几乎总是踢当我在没有Flash的情况下播放720p视频时,它几乎从未踢过。

这两个事实无可争议。

我不是在责备这里也许你认为这是Adobe的错 - Flash Player是垃圾软件也许你认为这是Apple的错 - Mac OS X不提供像Flash这样的浏览器插件需要更有效地运行并利用硬件H.264解码的API还有许多不同的政治论点 - 关于苹果利用其控制权来使竞争公司的平台边缘化,或者关于Flash是一个单一实施的封闭源专有平台几个人 - 例如这里,和这里— argue that even if Flash goes away, its use in web advertising will be replaced by HTML5 animation, and that such animation could use just as much CPU time and consume as much battery life as Flash does today — and, even worse, might be harder to block than Flash is today.

我对谁应该在技术上受到责备有意见我对政治有看法我不同意HTML5动画会遇到与Flash目前相同的性能问题(关于摆脱Flash没有用的论点今天因为HTML5动画可能是一个大问题在将来让我想起那些认为没有必要从Windows切换到Mac OS X以避免恶意软件的人,因为如果每个人都这样做,恶意软件制造商可能会转向针对Mac OS X.)但这些都是不可能的。我在这里争论的是现在,今天的实际优势两个事实:(1)更长的电池寿命和更低的环境CPU使用率,以及(2)更好的视频播放。

Safari和我的整个计算机作为一个整体今天比我卸载Flash之前运行得更好在Mac上卸载Flash并亲自查看。


  1. 在设置Safari以伪装成iPad Mobile Safari之后我注意到的一些问题:到iTunes商店的链接断了,TypeKit网络字体坏了Also, many sites, like Gmail, will default to serving you an iPad-optimized layout instead of the “regular” layout. ↩︎