从本质上讲,我希望能够在我的网站上使用appcache文件,但仅适用于移动设备,以使这些设备能够查看我正在离线开发的网站/ webapp,但是台式机/笔记本电脑通常可以访问互联网,我宁愿这些按原样查看站点,没有清单/缓存等。

我知道,虽然可以提供一些良好的结果,但用户代理嗅探最好是不可靠的,如果可以避免,那将是最好的。

我正在开发的站点/ Web应用程序内置于HTML / CSS / JS / PHP中,并使用响应式布局根据设备的宽度(使用CSS媒体查询)使用定制的视图/布局为每个设备提供站点的相同页面。

感谢您事先提供的帮助,我为此所做的所有搜索都被证明是徒劳的:(

更新

在罗伯特(Robertc)在下面发表评论之后,我想澄清一下,它是台式机浏览器(即与笔记本电脑上使用的浏览器完全相同),我希望从appcache / manifest文件中排除任何缓存...这是客户端和从我的角度来看,也可以通过编程方式将台式机和笔记本电脑一起使用,因为它们使用的是相同的软件/操作系统。

更具体地说,我的Web应用程序需要支持通过iOS,Android和Blackberry上的appcache / manifest进行缓存(尽管拥有所有平板电脑/智能手机会很好),所以也许问题是如何找到这些设备之一并包含appcache参考,但是这似乎正在引导我希望避免的用户代理嗅探路径...

最佳答案

因为浏览器会在其他所有事情发生之前先检查Appcache.manifast,所以您必须执行其他服务器端检测。您无法通过javascript加载appcache.manifest。

如果您收到来自iphone,ipad,android等的请求,则对Useragent进行服务器端检测,并提供带有清单的HTML,在其他情况下,则不带清单。

用户代理检查是最好的方法。您向不伪造用户代理的用户交付站点。

使用php对移动设备进行用户代理测试(只需添加所需的设备):

  • Mobile regexp user agent
  • http://chrisschuld.com/projects/browser-php-detecting-a-users-browser-from-php/
  • 关于php - 我可以使用 list 文件或Appcache文件来定位特定的浏览器/设备,还是仅从桌面浏览器中排除appcache?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13732965/

    10-08 23:47