我正在做离子框架和 cordova 。我想提交一些数据到服务器,但当这两个条件满足1。设备在线。2。数据(提交)可用。我正在检查这个 cordova 网络插件文档,但我感到困惑,有太多的怪癖在它。我怎么能写所有设备的有效代码(指Android,赢电话,iPhone等),也怎么能得到用户的IP地址。??我试过这个,在浏览器工作正常,但害怕实现的原因移动的可以忽略这一行(我猜)
$scope.checkOnline = navigator.onLine;
xxslljrj1#
这很简单,你只需要使用两个 cordova 插件:1.插件1:cordova插件网络接口示例:
networkinterface.getIPAddress(function (ip) { alert(ip); });
1.插件2:cordova插件网络信息示例:
document.addEventListener("online", onOnline, false); function onOnline() { // Handle the online event }
bwleehnv2#
这实际上是很难的,因为怪癖和不确定性与连接到实际的互联网。
navigator.online
在检查与您的在线服务的实际连接时并不可靠,但如果它显示您处于脱机状态,则您肯定处于脱机状态。相反,检查连接的最好方法是尝试从服务中获得一些响应,您知道这些响应将在99.99%的时间内出现。Here也是关于这个问题的一个很好的博客系列文章。你可能不想考虑像心跳这样的东西。而且,通常绑定到 cordova 的在线和离线事件是一个好主意,这样你就可以在发生在线事件时立即检查连接。
hivapdat3#
对于IP地址,您可以使用此
async function getIP(){ const repsIP = await fetch('https://api.ipify.org/?format=json'); const data = await repsIP.json(); return data; }
调用上述函数
this.getIP().then(data => this.ipAddress = data.ip);
3条答案
按热度按时间xxslljrj1#
这很简单,你只需要使用两个 cordova 插件:
1.插件1:cordova插件网络接口
示例:
工作示例和教程,请单击**here**。
1.插件2:cordova插件网络信息
示例:
插件文档中,单击here。
bwleehnv2#
这实际上是很难的,因为怪癖和不确定性与连接到实际的互联网。
在检查与您的在线服务的实际连接时并不可靠,但如果它显示您处于脱机状态,则您肯定处于脱机状态。
相反,检查连接的最好方法是尝试从服务中获得一些响应,您知道这些响应将在99.99%的时间内出现。
Here也是关于这个问题的一个很好的博客系列文章。你可能不想考虑像心跳这样的东西。而且,通常绑定到 cordova 的在线和离线事件是一个好主意,这样你就可以在发生在线事件时立即检查连接。
hivapdat3#
对于IP地址,您可以使用此
调用上述函数