我如何定位支持jQuery移动功能的手机?

时间:2011-03-16 04:02:00

标签: javascript jquery mobile jquery-mobile

我使用jQuery Mobile框架制作了一个网络应用程序,我希望为较低规格的手机提供支持。

我的问题是......针对具有JQM功能的手机的最佳方法是什么?我在jquery论坛上看到了类似的问题。其中一个答案显示http://detectmobilebrowser.com/提供了一长串手机。

这是最好的方式,还是我应该测试浏览器功能而不是实际定位手机。如果是后者,那些特征被认为是'A级'的特征?

干杯

3 个答案:

答案 0 :(得分:3)

Progressive enhancement是你应该瞄准的目标,jQuery允许你拥有一个代码库,让它可以在各种设备上运行。

考虑一下:

  • 所有指向其他网页的链接都是常规的HTML链接,链接仍然可以在没有AJAX支持的情况下工作,因为他们只是将您发送到所需页面的位置

  • 所有主要框架元素都是围绕列表,链接和几个div构建的。呈现内容不需要HTML5

  • 至少,所有手机都可以显示大量样式,无论多么有能力,您都可以显示内容

如果没有完全支持jQuery mobile,你有自定义接口吗?

答案 1 :(得分:1)

我同意优雅降解是最好的解决方案。我想补充说,使用noscript标签也是一种通过HTML为不支持JS的手机添加功能来提供优雅降级的好方法。

我认为很难找到定义手机是否可以与JQM配合使用的浏览器功能(甚至是一套)。根据我自己的经验,我使用了WURFL,一个开源设备检测库,提供功能信息。但是我用它来定位特定设备以包含特定于设备的CSS并删除我知道不支持它的其他设备的所有JS(以消除正在下载的JS的开销)。

WURFL:http://wurfl.sourceforge.net/

JQM宣称它提供了优雅的降级:

优雅降级:jQuery Mobile使用最佳的HTML 5和CSS 3功能,在功能最强大的浏览器中提供最佳体验。但是,我们不认为这是一个全有或全无的主张:功能较少的浏览器仍然可以获得其平台可以处理的最佳体验。它们可能没有最佳平台的所有渐变或花式过渡,但它们仍然具有高度可用性。最基本的浏览器很容易降级为简化的HTML和CSS。

答案 2 :(得分:1)

我还在单个移动页面中测试了多个JQM页面,这些页面在JQM中工作得非常好(非常快)但是遇到了同样的问题(当智能手机的浏览器中关闭javascript时所有页面出现)。要解决此问题,请仅为每个JQM页面使用一个页面(尽管您放弃了速度和统一页面转换)。对于NOSCRIPT标记选项,该标记在所有浏览器中都是 NOT 。要解决该问题,您可以尝试以下内容:

<div id="no-js">
<!-- Place HTML without javascript here -->
</div>
<div id="js">
<script language="javascript">
// place javascript here which would be ignored by browsers not support javascript or with
// javascript turned off
document.getElementById("no-js").style.display = "none"; // be sure to hide the non javascript
// div
</script>
</div>

上述逻辑适用于NOSCRIPT标记类型浏览器以及不识别NOSCRIPT的浏览器。

dlausch