在PhoneGap应用,或者黑莓Java/HTML混搭应用中,如何使用JavaScript检查Mobile App网络连接状态呢?
- <script type="text/javascript">
- if (navigator.onLine) {
- alert("online");
- } else {
- alert("offline");
- }
- </script>
jQuery Mobile中显示online/offline状态
- <div data-role="content">
- <button id="home_network_button" data-icon="check">Internet Access Enabled</button>
- </div>
- <script type="text/javascript">
- if (navigator.onLine) {
- } else {
- $("#home_network_button").text('No Internet Access')
- .attr("data-icon", "delete")
- .button('refresh');
- }
- </script>
- </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。
参考:
http://mobile.tutsplus.com/tutorials/phonegap/build-an-exercise-tracking-app-geolocation-tracking/
相关推荐
触摸屏检查触摸屏检查触摸屏检查触摸屏检查触摸屏检查触摸屏检查触摸屏检查触摸屏检查触摸屏检查
使用前请检查itunes是否已安装64位版本,我使用的是iTunes 64位_12.12.2.2 不需要iTunesMobileDevice.dll 本程序开发环境win10 x64 vs2022 使用多字节字符集编译64位 预处理 _CRT_SECURE_NO_WARNINGS 如果提示...
MOBILEMAP是款适用于移动端GIS数据查看,修改和采集的安卓应用软件。可以帮助您随时随地查看、编辑、采集矢量数据,完成数据检查修改整理工作。支持数据包括:SHP\GPX\TAB\S57\KML\GEOJSON\SQLLITE\GPK等矢量数据;...
youtrack-mobile, 用于YouTrack的iOS和Android客户端 YouTrack移动 YouTrack移动帮助你从任何地方访问YouTrack问题,动态创建新问题,或者者快速更新现有的问题。享受一个清晰的,简单的视图,以及一个搜索框,辅助...
安装$ npm install --save regex-mobile-viewport用法 var regexmobileviewport = require ( 'regex-mobile-viewport' ) ;regexmobileviewport ( ) . test ( '<meta name="viewport" content="width=device-width...
固定的根据用户代理字符串检查是否有移动浏览器。例子var mobile = require ( 'is-mobile' ) ;console . log ( mobile ( ) ) ;// => false原料药移动({[ua],[tablet],[featureDetect]}) 如果正在使用移动浏览器...
更新(2015年1月16日)请检查我们的新。 我们认为您会喜欢它们。jQuery Mobile Square-UI主题基于jQuery Mobile主题。演示版版本号我们将使用master分支来更新jQuery Mobile版本。 以前的版本将移至相应的分支。当前...
检查网站是否适合移动设备使用(通过Google Search Console API)。 呈现详细的报告。 样本输出(通过节点CLI) 正在安装 $ npm install --save site-mobile-friendly 背景 我们的Dev Ops自动化流程的一部分。 在...
检查是否是以手机浏览器进入(IN_MOBILE)
Authors’Acknowledgments We’dliketoexpressourgratitudetoallthepeoplewhoplayedapart indevelopingthisbook.First,we’dliketothanktheeditorsthatworked onthisproject:SatuMcNabbatSymbian;...
更新(04/13/2015)请检查我们的新。 我们认为您会喜欢它们。jQuery Mobile Flat-UI主题基于jQuery Mobile主题。演示版版本号我们将使用master分支来更新jQuery Mobile版本。 以前的版本将移至相应的分支。当前分支...
winmobile程序连接sqlserver的连接说明及例子,里面给出了例程,还有环境检查.
- Google公告:https://webmasters.googleblog.com/2016/05/a-new-mobile-friendly-testing-tool.html * 用法: - 安装并激活扩展,它已准备好进行检查。 只需访问您要测试的任何登录页面,然后单击Chrome浏览器的...
ippy-mobile 简单的端口状态检查器
•网络-详细记录正在发出的网络请求并检查响应。 •资源-显示本地存储,会话存储,cookie,脚本,样式表,iframe和图像资产。 •源-HTML,JS和CSS的源代码查看器。 •信息-查看当前URL,用户代理和设备详细信息。 •...
:mobile_phone:异议-Runtime Mobile Exploration异议...检查容器文件系统并与之交互。 绕过SSL固定。 转储钥匙串。 执行与内存相关的任务,例如转储和修补。 探索和操纵堆上的对象。 还有更多...屏幕快照可在wik中找到
2021年在线移动传奇黑客和钻石生成器应用程序 下面是使用移动图例黑客和钻石生成器应用程序2021的简单步骤。 请注意,只有在浏览器中启用了Java脚本后,此生成器才有效。 步骤1:转到>> ...
:mobile_phone: 异议-Runtime Mobile Exploration objection是由提供支持的运行时移动探索工具包,旨在帮助您评估移动应用程序的安全状况,而无需越狱。 同时支持iOS和Android。 检查容器文件系统并与之交互。 绕过...
我们始终会更新图像,因此请随时检查...我们将为您提供5星评级! 如果您有任何疑问或反馈,请发送电子邮件至info@newtabgallery.com。通过我们的扩展程序,您可以获得:1:高分辨率的新标签页体验2:简单,清晰的...