navigator.onLine 不工作 cordova 5.0.0

2023-12-10

我在检查设备是否没有互联网连接时遇到问题。我正在使用 cordova 5.0.0 CLI。这是我的代码:

if(navigator.onLine) {
  alert("online");
} else {
  alert("offline");
  window.open("404.html");
}

问题是:它总是正确的。我该如何修复它?我知道这个plugin,但我不知道如何让它发挥作用。我知道如何添加插件,但然后就结束了。有人可以帮助我让这个插件正常工作,或者使用替代代码来检查用户是否离线?提前致谢


Cordova 插件在您的 Web 应用程序和移动操作系统的本机 API 之间架起了一座桥梁。为了使用本机端,您必须等到 cordova 准备好。如果您想检查用户是否在线或离线,您可以添加问题中链接的插件,然后像这样使用它:

首先创建一个将返回的函数true or false取决于用户是否在线:

function checkConnection(){
   var networkState = navigator.connection.type;

   var states = {};
   states[Connection.UNKNOWN]  = 'Unknown connection';
   states[Connection.ETHERNET] = 'Ethernet connection';
   states[Connection.WIFI]     = 'WiFi connection';
   states[Connection.CELL_2G]  = 'Cell 2G connection';
   states[Connection.CELL_3G]  = 'Cell 3G connection';
   states[Connection.CELL_4G]  = 'Cell 4G connection';
   states[Connection.CELL]     = 'Cell generic connection';
   states[Connection.NONE]     = 'No network connection';

   if(states[networkState].indexOf("WiFi") != -1 || states[networkState].indexOf("Cell") != -1)
        return true;
  return false;
}

当您获得设备就绪事件时:

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
   // Now safe to use device APIs
   var connected = checkConnection();//will return true or false

   if(connected){
      //user is online
   }else{
      //user is offline
   }
}

也可以直接收听online and offline像这样的事件:

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
// Now safe to use device APIs
  document.addEventListener("online", onOnline, false);
  document.addEventListener("offline", onOffline, false);
}

function onOnline() {
   // User is Online
}
function onOffline() {
   // User is Offline
}

两种方法都需要添加network-information插入。阅读文档更多细节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

navigator.onLine 不工作 cordova 5.0.0 的相关文章

  • 有什么方法可以安全地在浏览器中显示视频

    有什么方法可以安全地在浏览器中显示视频 就像他的安全措施之一 视频无法下载 谢谢 我想您的意思是您不希望您的视频被下载或复制 如果是这样 那么阻止人们下载视频或多或少是不可能的 甚至有很多工具可以从 YouTube 等大型提供商那里下载 因
  • 将 JSON 字符串传递给 Django 模板

    我一直在用头撞墙 试图找出为什么我无法将从 Django 模型生成的 JSON 字符串传递到模板的 javascript 静态文件中 事实证明 问题不在模型级别 使用serializers serialize 在脚本本身中放入相同的字符串将
  • d3 序数尺度的映射

    我正在使用 D3 的序数比例将数字映射到颜色 我用过这个 color d3 scale ordinal range 1f77b4 ff7f0e 2ca02c d62728 9467bd 8c564b e377c2 domain 0 6 co
  • Android 上的 Facebook 社交插件

    我想集成 Facebook 的评论社交插件 https developers facebook com docs reference plugins comments https developers facebook com docs r
  • Corebluetooth 方法 scanForPeripheralsWithServices 在任何设备中都不适用于我。所有 github 示例均不适用于我的设备 ipod touch

    我正在开发蓝牙相关的应用程序 但我没有取得任何成功 在我的应用程序中 我想将我的 iDevice 与任何其他正在扫描的蓝牙设备连接 但使用 CBCentralManager 方法 scanForPeripheralsWithServices
  • ListPreferences 的异常

    这是我的第一个 Android 应用程序 在尝试使用 ListPreference 时遇到了异常 应用程序与首选项一起加载 但是当我触摸 ListPreference 条目时 应用程序 意外停止 设置 java public class S
  • 在文档流中提取一个元素

    这是示例代码 top background lightGreen content outline 1px solid red bottom background lightBlue div Top div div Lorem ipsum d
  • 输入号码时自动格式化 SSN

    我有一个文本字段 用户输入 SSN 号码 输入自身时 它应该格式化 就像关于文本字段的更改 它应该格式化999 999 999以这种方式在显示器本身上 kottenator 的脚本几乎已经完成 但它每隔 3 位数字就中断该值 而不是 3 位
  • 在 wkwebview 中启用摄像头和麦克风访问

    我有一个针对移动设备优化的网络应用程序 它利用getUserMedia访问网络摄像头和麦克风资源 我正在将这个应用程序包装在WKWebView因为我想提供原生应用程序体验 我知道 iOS 不允许通过浏览器访问相机 但是有什么方法可以使用本机
  • Android 中应用程序在后台运行时如何显示闪屏?

    我的应用程序有一个启动屏幕 无法避免它 因为这是出于品牌原因 我想屏蔽用户界面并在后台显示启动屏幕 就像银行应用程序那样 我应该覆盖 MainActivity 中视图的 onPause 和 onResume 吗 显现
  • 将 Spritekit 游戏转换为 Android?

    是否有任何新选项可以将 spritekit 游戏转换为 Android 游戏 似乎唯一的选择是用 Java 重新编码所有内容或使用 Cocos2D LibGDX 等 很不幸的是 不行 而且带有 Apportable 服务的跨平台 Sprit
  • 在 gulp 和 browsersync 问题中观看新文件

    我使用 browsersync 在文件更改时重新加载浏览器 而且它工作完美 但是当我创建新文件 例如 html scss js 时 bowsersync 不起作用 如何解决这个问题 gulpjs Browser Sync gulp task
  • 是否可以在 html 中将单选按钮标签助手值属性设置为“已选中”?

    我正在寻找一种方法来使用单选按钮标签帮助器上的值属性来通知按钮是否被选中 而不是使用单独的字段进行选择 我找到了 Shyju 的答案相关问题 https stackoverflow com questions 34570908 radio
  • Twitter 引导选项卡和 JavaScript 事件

    我正在一个项目中使用 twitter bootstrap 特别是它的选项卡功能 http twitter github com bootstrap javascript html tabs http twitter github com b
  • 片段已添加 IllegalStateException

    我在容器 Activity 上使用此方法来显示 BFrag public void showBFrag Start a new FragmentTransaction FragmentTransaction fragmentTransact
  • 如何创建浏览器插件?

    我必须创建一个插件 当用户将鼠标悬停在某些术语上时 该插件必须显示信息 谁能告诉我如何做的方向 我对创建插件没有太多想法 我知道我想要做的事情可以通过java脚本来完成 但是java脚本文件可以作为浏览器插件安装吗 任何对此的想法将不胜感激
  • 如何选中表格中输入文本焦点上的复选框

    我试图在输入文本焦点上检查表 DOM 中的复选框 但无法访问复选框元素 但我的焦点正在工作 这是我的 jsfiddle 链接https jsfiddle net 9qha9vft https jsfiddle net 9qha9vft 这是
  • 更改 ActionMode 溢出图标

    有没有办法更改 ActionMode Overflow 图标而不更改 正常 ActionBar 的图标 我仍然需要弄清楚如何仅更改 ActionMode Actionbar 内部的溢出图标 因为我更改了默认操作栏中的溢出图标 该图标在 Ac
  • 如何从 vue 组件调用 App.vue 中的方法

    我有一个 vue 组件和一个 vue 元素声明 如下所示 Vue component todo item template li This is a todo li methods test function I am getting an
  • JavaScript:如何在 Internet Explorer 中模拟更改事件(委托)

    UPDATE 回顾 小提琴和赏金 这个问题并没有引起太多关注 所以我将花一些时间来解决这个问题 我知道我的答案和问题都过于冗长 这就是为什么我继续设置这把小提琴 http jsfiddle net vVA8N 在我看来 这是我目前必须用来接

随机推荐

  • 如何将 ODBC 驱动程序添加到 MAMP 环境?

    我正在开发使用 php 和 ms access 数据库在 PC 设置上构建的东西 当我将应用程序移植到我的 MAMP 环境时 我得到 Fatal error Call to undefined function odbc connect i
  • IPN 未发送,握手未验证。请检查您的信息。

    我正在与 Paypal 上的 Expresscheckout 合作 用于单次用户付款集成 工作流程首先创建令牌 用户重定向到 paypal 页面 并成功到我的返回 URL 页面 1 设置快速结帐 2 DoExpressCheckout付款
  • Javascript:按数字属性对对象数组进行排序,其中包括未定义的属性

    我可以定义一个数字数组并像这样对它们进行排序 var array 2 undefined 1 array sort a b gt a b console log array 输出是1 2 null 我有一个可以包含数字属性的对象数组 我可以
  • 用于从路径中提取文件名的正则表达式

    我需要从以下路径中提取文件名 无文件扩展名 my local server path to this file may contain any character pdf 我尝试过几件事 大部分基于类似的事情http regexr com
  • 为什么在 Pytorch 中,当我复制网络权重时,它会在反向传播后自动更新?

    我编写了以下代码作为测试 因为在我的原始网络中 我使用 ModuleDict 并取决于我提供的索引 它只会切片和训练该网络的一部分 我想确保只有切片层会更新它们的权重 所以我编写了一些测试代码来仔细检查 好吧 我得到了一些奇怪的结果 假设我
  • 我什么时候应该使用Webservice属性System.ComponentModel.ToolboxItem(false)

    我们什么时候应该将此属性添加到 ASP NET Web 服务中 System ComponentModel ToolboxItem false 完全不确定这与网络服务有什么关系 See the 工具箱项在 MSDN 这你提到的构造函数 用于
  • Azure WebJob/Scheduler 从上午 8 点到下午 6 点每 30 分钟一次?

    当我在 Azure 管理控制台中配置计划时 我只能选择使用绝对结束日期 时间 或永不结束 和间隔进行计划 因此 我无法通过此 UI 将作业安排为每天上午 8 00 到下午 6 00 每 30 分钟运行一次only 即不要在下午 6 01 到
  • 如何根据与用户输入匹配的单词数进行排名

    在我的查询中 我基本上尝试使用该搜索引擎的全文搜索 当用户输入一个项目时 查询会查看我的 mysql 表中是否有相同的字段 例如 假设用户输入 iPad 我的表格可能有字段 标题 描述 关键字 和 链接 我的桌子可能有 Apple whic
  • 如何创建仅对数字列求和的列?

    我有一个包含很多列的数据框 LABEL COL1 COL2 COL3 Meat 10 20 30 Veggies 20 30 40 如何使列命名SUMCOL加起来COL1 COL2 COL3 以及我添加的任何其他数字列 的例子SUMCOL仅
  • Discord.js:手动触发事件

    我有一个基本的审核机器人discord js 写在node js 我需要对机器人运行一些测试 但为此 我需要切换一个事件 我知道node js has an e dispatchEvent event 但是 据我所知 discord js没
  • UIScrollView:水平分页、垂直滚动?

    我怎样才能强制UIScrollView其中分页和滚动在给定时刻仅垂直或水平移动 我的理解是directionalLockEnabled属性应该可以实现这一点 但是对角线滑动仍然会导致视图对角线滚动 而不是将运动限制在单个轴上 编辑 更清楚地
  • 将 Expo 项目转换为原始 React Native 项目

    I did yarn run eject弹出但它给了我这个警告 Warning We found at least one file where your project imports the Expo SDK 我知道我有一些使用 Exp
  • Xcode 6 忽略断点 - Swift

    Xcode 6 完全忽略了我的断点 我看到一个帖子here从 2008 年开始 但答案已经过时 而且似乎不起作用 EDIT 这种情况只发生在我启动的项目中 我下载的所有开源项目以及我几个月前开始的项目都运行得很好 UPDATE 这是我创建一
  • jax-rs jersey:枚举绑定 FormParam 的异常映射

    我正在构建一个在 Glassfish 3 上运行的 REST 应用程序 并且在处理参数绑定到枚举时遇到问题 FormParam state final State state 所以 State 只是一个枚举 其中包含不同类型的状态 如果提交
  • 如何从 Google Drive Comments API 获取单元格范围

    我试图找出评论属于 Google 电子表格中的哪个单元格 从API我得到 kind drive comment anchor type workbook range uid 0 range 285502171 但我无法转换整数值range到
  • 使用 JSON 的 jQuery UI 自动完成

    好吧 我一直在为此绞尽脑汁 我对此很糟糕 但是是的 我尝试阅读所有我能读到的内容 但仍然无法让它发挥作用 尝试使用 jquery ui 进行自动完成 我的 json 看起来像这样 dealers 1156 dealer 1 1122 dea
  • WordPress 网站图标未显示在 Google Chrome 选项卡上

    几周以来 我的网络杂志的图标不再显示 在我工作的浏览器上 也在我的个人电脑上 我认为我没有更改配置 我尝试重新上传 但没有成功 https www yubigeek com 在 Google Chrome 开发者控制台中 favicon i
  • Itext 7 覆盖 pdfHtml 中的默认边距

    我的 html 内容必须从页面的绝对左上角开始 但是 HtmlConverter 会自动在 pdf 页面的顶部和左侧添加 0 5 英寸的间隙 我如何覆盖这个默认边距 您可以使用 page 通过 CSS 设置页面的边距 以下声明将所有页边距设
  • 如何使用 Visual Basic 在文本文件中的特定位置使用“追加”命令?

    文本文件 test1 test2 test3 test4 我想在 test2 之后写一些东西 我第一次尝试打开该文件 并读取了 test2 txt 所在的位置 之后我以追加格式打开文本文件 但我不知道如何在特定位置写入 我必须在 Visua
  • navigator.onLine 不工作 cordova 5.0.0

    我在检查设备是否没有互联网连接时遇到问题 我正在使用 cordova 5 0 0 CLI 这是我的代码 if navigator onLine alert online else alert offline window open 404