如何获取用户IP地址并检查用户是否在Ionic\Cordova中在线

3z6pesqy  于 2022-11-15  发布在  Ionic
关注(0)|答案(3)|浏览(182)

我正在做离子框架和 cordova 。我想提交一些数据到服务器,但当这两个条件满足1。设备在线。2。数据(提交)可用。
我正在检查这个 cordova 网络插件文档,但我感到困惑,有太多的怪癖在它。我怎么能写所有设备的有效代码(指Android,赢电话,iPhone等),也怎么能得到用户的IP地址。??我试过这个,在浏览器工作正常,但害怕实现的原因移动的可以忽略这一行(我猜)

$scope.checkOnline = navigator.onLine;
xxslljrj

xxslljrj1#

这很简单,你只需要使用两个 cordova 插件:
1.插件1:cordova插件网络接口
示例:

networkinterface.getIPAddress(function (ip) { 
    alert(ip); 
});

工作示例和教程,请单击**here**。

1.插件2:cordova插件网络信息
示例:

document.addEventListener("online", onOnline, false);

function onOnline() {
    // Handle the online event
}

插件文档中,单击here

bwleehnv

bwleehnv2#

这实际上是很难的,因为怪癖和不确定性与连接到实际的互联网。

navigator.online

在检查与您的在线服务的实际连接时并不可靠,但如果它显示您处于脱机状态,则您肯定处于脱机状态。
相反,检查连接的最好方法是尝试从服务中获得一些响应,您知道这些响应将在99.99%的时间内出现。
Here也是关于这个问题的一个很好的博客系列文章。你可能不想考虑像心跳这样的东西。而且,通常绑定到 cordova 的在线和离线事件是一个好主意,这样你就可以在发生在线事件时立即检查连接。

hivapdat

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);

相关问题