我的问题: 我需要我的应用程序来搜索本地 WiFi 网络,以找到在特定端口上具有应用程序的服务器计算机。我不想将服务器 IP 地址硬编码到应用程序中,因为它可能会在许多地方使用。
更新:所以我需要能够找到网络上所有设备的 IP 地址。
到目前为止我做了什么:
Iv 按照以下步骤遵循有关堆栈溢出和在线的其他指南:
<强>1。安装 cordova 插件:
"cordova plugin add cordova-plugin-networkinterface"
<强>2。在全局范围内声明变量以访问对象
declare var NetworkInterface: any;
export class TestClass{}
<强>3。使用组件内部的全局变量调用对象
NetworkInterface.getWiFiIPAddress((ip) => {
console.log("network ip address = " + ip);
});
然而,当从移动设备运行时,这会导致运行时错误:
ERROR Error: Uncaught (in promise): ReferenceError: NetworkInterface is not defined
我也试过全局声明一个变量,然后尝试在组件中应用一个字符串值,结果还是遇到了同样的问题。变量在全局范围内不起作用似乎是一个更大的问题?任何帮助都会很棒!
最佳答案
您需要使用以下CLI
:
ionic plugin add cordova-plugin-networkinterface --save
您需要将其声明为全局的。您还需要在设备
或模拟器
上对其进行测试,因为这是一个插件
。
declare var NetworkInterface: any;
旧答案:
您可以使用原生 Network 轻松做到这一点插件。
ionic cordova plugin add cordova-plugin-network-information
npm install --save @ionic-native/network
来自文档:
import { Network } from '@ionic-native/network';
constructor(private network: Network) { }
...
// watch network for a connection
let connectSubscription = this.network.onConnect().subscribe(() => {
console.log('network connected!');
// We just got a connection but we need to wait briefly
// before we determine the connection type. Might need to wait.
// prior to doing any api requests as well.
setTimeout(() => {
if (this.network.type === 'wifi') {
console.log('we got a wifi connection, woohoo!');
}
}, 3000);
});
关于angular - Ionic 3 - 如何将 cordova 插件网络接口(interface)与 ionic 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47645150/