`

检查mobile是否在线

 
阅读更多

在PhoneGap应用,或者黑莓Java/HTML混搭应用中,如何使用JavaScript检查Mobile App网络连接状态呢?

 

[javascript] view plaincopy
  1. <script type="text/javascript">  
  2.   if (navigator.onLine) {  
  3.       alert("online");  
  4.   } else {  
  5.       alert("offline");  
  6.   }  
  7. </script>  

 

jQuery Mobile中显示online/offline状态

 

[javascript] view plaincopy
  1. <div data-role="content">  
  2.     <button id="home_network_button" data-icon="check">Internet Access Enabled</button>  
  3.   </div>  
[javascript] view plaincopy
  1.   <script type="text/javascript">  
  2.      if (navigator.onLine) {    
  3.       } else {    
  4.         $("#home_network_button").text('No Internet Access')  
  5.          .attr("data-icon""delete")  
  6.          .button('refresh');  
  7.       }    
  8.   </script>  
  9. </div>  


 

 

 开发离线应用的第一步是要知道设备是在线还是离线,HTML5为此定义了一个navigator.onLine属性,这个属性值为true表示设备能上网,值为false表示设备离线。这个属性的关键是浏览器必须知道设备能否访问网络,从而返回正确的只。实际应用中,navagator.online在不同的浏览器间还有写小的差异。

IE6+和Safari 5+能够正确检测到网络已断开,并将navigator.onLine的值转换为false。

Firefox 3+和Opear 10.6+支持navigator.onLine属性,但你必须手工选中菜单项“文件-Web开发人员(设置)-脱机工作”才能让浏览器正常的工作。

Chrome 11及之前版本始终将navigator.onLine属性设置为true。这是一个待修复的bug。

由于存在上述兼容性的问题,单独使用navigator.onLine属性不能确定网络是否连通。即便如此,在请求发生错误的情况下,检测这个属性仍然是瓜农的。以下是检测该属性状态的示例。

if(navigator.onLine){
    //正常工作}
else{
    //执行离线状态时的任务
}

除navigator.onLine属性之外,为了更好地确定网络是否可用,HTML5还定义了两个事件:online和offline。当网络从离线变为在线或者从在线变为离线时,分别触发这两个事件。这两个事件在window对象上触发。

 
var EventUtil = {
    addHandler: function (element, type, handler) {
        if (element.addEventListener) {
            element.addEventListener(type, handler, false);
        } else if (element.attachEvent) {
            element.attachEvent("on" + type, handler);
        } else {
            element["on" + type] = handler;
        }
    }
};

EventUtil.addHandler(window, "online", function () {
    alert("Online");
});
EventUtil.addHandler(window, "offline", function () {
    alert("Offline");
});

 

为了检测应用是否离线,在页面加载后,最好先通过navigator.onLine取得初始的状态。然后,就是通过上述两个事件来确定网络连接状态是否变化。当上述事件触发式,navigator.onLine属性的值也会改变,不过必须要手工轮询这个属性才能检测到网络状态的变化。

支持离线检测的浏览器有IE6+(只支持navigator.onLine属性)、Firefox3、Safari4、Opera 10.6、Chrome、iOS 3.2版Safari和Android版WebKit。

参考:

navigator.onLine 离线检测 

http://mobile.tutsplus.com/tutorials/phonegap/build-an-exercise-tracking-app-geolocation-tracking/

分享到:
评论

相关推荐

    触摸屏检查,C#,mobile

    此代码主要用于检测运行在Windows Mobile平台上的设备是否具备触摸屏功能。 ### 触摸屏检查 #### 代码解析 ##### 命名空间与导入 首先,代码通过`using`关键字导入了多个命名空间,包括但不限于`System`、`System...

    vSphere Mobile Client v2.0

    - **远程故障排查**: 当服务器出现故障时,可以立即通过手机检查并解决问题。 - **灾难恢复**: 在紧急情况下,能够迅速采取行动,例如启动备份虚拟机。 - **日常监控**: 对于大型数据中心,管理员可以通过移动设备...

    Windows Mobile设备中心(64位)

    同时,定期检查更新以获取最新的功能和安全性改进,是保证Windows Mobile设备中心顺畅运行的关键。 总结来说,Windows Mobile设备中心(64位)是Windows 7 64位用户管理Windows Mobile手机的必备工具,它提供全面的...

    Crestron Mobile 安卓 使用说明

    - **版本更新**:定期检查应用更新,以确保使用最新版本的功能和服务。 - **技术支持**:如果遇到任何问题或疑问,可以通过 Crestron 的官方网站或客服热线获得帮助。 #### 五、结论 通过本指南的学习,您应该已经...

    艾肯Mobile U声卡驱动_v1.37.5

    安装完成后,用户可以通过设备管理器检查声卡是否被正确识别,并通过驱动程序的控制面板调整各种音频参数,如增益、采样率、缓冲区大小等,以适应不同的录音和播放环境。 总的来说,艾肯Mobile U声卡驱动_v1.37.5是...

    Mobile-Detect-2.8.12

    1. **设备检测**:可以通过`isMobile()`方法检查用户是否使用移动设备,`isTablet()`方法则用于判断是否为平板电脑。此外,还可以检测特定设备如`isiPhone()`, `isAndroidPhone()`等。 2. **操作系统检测**:库提供...

    e-mobile安装教程

    安装完成后,定期检查e-mobile的日志和报告,以监控设备状态和应用使用情况。同时,及时更新软件以获取新功能和安全补丁。 10. **故障排查** 如果在安装或使用过程中遇到问题,查阅"说明.txt"文件,其中可能包含...

    jQueryMobile-HTML5模板

    2. **功能调试**:在不同设备或模拟器上测试模板,检查其在不同屏幕尺寸和浏览器下的表现。 3. **自定义修改**:尝试修改模板的样式、布局或交互,以满足自己的需求。 4. **扩展功能**:结合JavaScript和jQuery,...

    Windows mobile5.0仿真器

    Windows Mobile 5.0 仿真器是一款用于开发者和测试人员的工具,它允许用户在桌面计算机上模拟运行 Windows Mobile 5.0 操作系统的设备。这个仿真器对于开发、调试和测试移动应用至关重要,因为它提供了在真实设备上...

    泛微e-mobile常见问题及解决

    对于e-mobile启动后,登录manager后台管理,显示“服务器通讯异常,请检查相关设置”的情况,排查方法包括:确认初始化设置中设置的目标e-cology系统是否已启动,以及检查e-cology系统webservice状态是否正常。...

    windows mobile控制台插件

    4. **系统调试工具**:对于开发者而言,控制台插件是调试移动应用的重要工具,因为它允许他们查看系统日志、跟踪内存使用情况、检查网络连接等。 5. **第三方工具集成**:许多控制台插件支持安装和使用第三方命令行...

    jQuery Mobile 高级设计模板

    3. **调试和定制:** 使用浏览器的开发者工具检查和调整元素样式,根据需求修改JavaScript代码以实现特定功能。 4. **性能优化:** 注意减少HTTP请求,合并CSS和JS文件,以及利用数据缓存来提高应用性能。 总之,`...

    OperaMobile12.1.zip

    3. **调试工具**:内置的开发者工具提供了一套完整的调试解决方案,包括元素检查、网络请求查看、性能分析等功能。这些工具使得开发者能够定位并修复代码中的问题,优化网页加载速度和性能。 4. **触摸事件模拟**:...

    iphone连接助手源码 C++调用itunes的MobileDevice.dll与电脑建立连接支持新版itunes IOS

    使用前请检查itunes是否已安装64位版本,我使用的是iTunes 64位_12.12.2.2 不需要iTunesMobileDevice.dll 本程序开发环境win10 x64 vs2022 使用多字节字符集编译64位 预处理 _CRT_SECURE_NO_WARNINGS 如果提示...

    Windows Mobile-based Device安装驱动所需要的系统文件

    在Windows操作系统中,安装Windows Mobile-based Device的驱动程序是一个关键步骤,确保设备能与电脑进行有效通信和数据同步。这个过程涉及到多个系统文件,这些文件是驱动程序运行的基础。了解这些文件及其作用对于...

    ECSHOP mobile 触屏

    在本文中,我们将深入探讨ECSHOP Mobile 触屏的关键特性、安装步骤以及如何有效利用其功能来提升您的在线业务。 首先,ECSHOP Mobile 触屏的核心目标是为智能手机和平板用户提供一个流畅、直观的购物体验。它采用了...

    Mobile模拟器环境配置与程序运行

    - 如果同步连接没有成功,可以手动打开 Windows Mobile 设备中心,并检查连接设置。 - 确保“允许连接到以下一个其中的端口”选项中已经选中了 DMA (Device Manager Agent),然后点击“连接”。 5. **屏幕方向...

    Windows Mobile 6.1 开发指南

    - **步骤四**: 监控下载进度并检查是否有错误发生。 通过以上步骤,您可以成功地为 Windows Mobile 6.1 构建并下载自定义的操作系统镜像。这份开发指南不仅适用于新手,也对有经验的开发者有所帮助,因为它详细地...

    移动mobileSelect插件及省市区数据

    开发者需要检查插件在不同设备和浏览器上的表现,确保其在各种环境下都能稳定工作。此外,对于数据量较大的情况,还应考虑分页加载或者懒加载策略,以提高应用的性能。 总结来说,“mobileSelect”插件是一个适用于...

Global site tag (gtag.js) - Google Analytics