为“移动”设备配置设计“异常”字符串


16

什么异常字符串是将iPhone,iPad,Android,平板电脑等用户重定向到其他设计的“最新技术”?

也就是说,我意识到

System -> Configuration -> Design

用户界面中,有一个功能允许我创建与用户代理字符串匹配的正则表达式。我要寻找的是人们用来将非台式计算机重定向到其他移动和/或响应主题的特定字符串?

还是现在有比“例外”方法更好的方法?

Answers:


15

我们使用了两种不同的版本。第一个是@Marius提及的内容减去特定的“ Fennec”提及的内容(不再包含在 FF Mobile 的UA字符串中)。我从类似的来源得到它:

iPhone|iPod|BlackBerry|Palm|Googlebot-Mobile|Mobile|mobile|mobi|Windows Mobile|Safari Mobile|Android|Opera Mini

第二个是相同的,但是删除了“移动”一词,因此该网站的移动版本不提供给iPad,后者的用户代理中包括Mobile。苹果甚至在TN2262中指出了这一点

iPad上的Safari能够提供“桌面” Web体验,由于iPad具有大屏幕和快速的网络连接,因此用户会期望这种体验。如果您的网站版本已针对具有小屏幕的移动设备进行了优化,则请勿将此移动版本提供给iPad用户。

...

请注意,iPad上的Safari用户代理字符串包含单词“ Mobile”,但不包含单词“ iPhone”。如果当前正在向任何自标识为“移动”的浏览器提供移动内容,则应修改用户代理字符串检查以查找iPad,并避免将其发送到错误的网站版本。

根据我在FF Mobile上看到的内容,如果您希望将桌面主题应用于所有平板电脑(而不仅仅是iPad),在此字符串中使用“ Android”会造成麻烦出于各种原因将其包含在UA字符串中。

老实说,我还没有亲自测试以上字符串的覆盖范围。我确实知道:这是一个复杂的烂摊子!:)

注意:如果要在EE 1.12或更早版本(尚未选中1.13)上进行设置,则需要Magento支持提供的补丁才能使FPC正常工作。它无法在发行版本中考虑设计例外。

更新1:

EE 1.13.0.0和1.13.1.0中仍然存在需要设计补丁才能使设计例外正常工作的臭虫。Magento支持人员提供了一个修补程序,该修补程序在其已知问题列表中:SUPEE-1598


我会为您检查1.13 ...但是...
philwinkle 2013年

1
我可以轻松地检查一下,现在我太懒了。:)
davidalger

认真地说,这是一个相当完整的清单。+1。
philwinkle

@davidalger,我使用了第一个表达式(您提到过)。现在如何在所有平板电脑,iPad,iPad mini上显示桌面站点?因为它们都展示了移动主题。
Kishore Patra'3

如何将这些字符串放在哪里以将移动设备重定向到移动设备的www.m.myDOMAIN.com?Magento 1.9.1
Allysin

7

我添加了2个设计例外,其中一个例外是针对平板电脑,其中我使用了我的桌面主题,另外一个例外是针对电话,其中我使用了我的移动主题。我先添加针对平板电脑的例外,然后添加针对手机的例外

平板电脑

iPad|Silk|Kindle|Xoom|SCH-I800|Tablet|GT-P10|SC-01C|SHW-M180S|SGH-T849|SCH-I800|SHW-M180L|SPH-P100|SGH-I987|zt180|HTC(.Flyer|\\_Flyer)|Sprint.ATP51|ViewPad7|pandigital(sprnova|nova)|Ideos.S7|Dell.Streak.7|Advent.Vega|A101IT|A70BHT|MID7015|Next2|nook|Windows NT|DROID RAZR

手机

android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|iP(hone|od)|iris|kindle|lge |maemo|meego.+mobile|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|(Android.+Mobile)|NOKIA|SymbianOS|N900|BlackBerry|Mobile

这几乎达到了我必须赞扬的预期100%的效果,并非常感谢beeplogic谁将我用作我的基础的正则表达式,谢谢!


1
我知道这很旧,但只是想注意到Ipad也使用了移动字符串,因此您应该将其从电话列表中删除
Toon Van Dooren 2015年


1

这是我使用过的一个:

android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|meego.+mobile|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino

0

我特别需要过滤掉特定版本的Android设备。可以使用类似的方法来过滤掉iOS版本。

以下示例匹配iPad,iPhone和所有Android,但版本“ 2。*”,“ 3。*”,“ 4.0 *”除外

iPad|iPhone|Android ((?!(2\.|3\.|4\.0)).)

它使用否定性环视,请参阅此处的说明。
请注意,尝试模仿“> 2.3”在regex中不起作用,但需要一个解决方法作为示例。Rubular
是在线测试字符串上的正则表达式匹配的重要资源

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.