微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

角度 – 离子3 – 如何使用cordova插件网络接口与离子?

我的问题:
我需要我的应用程序搜索本地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

您需要将其声明为global.And您还需要在设备或模拟器上测试它,因为这是一个插件.

declare var NetworkInterface: any;

旧答案:

您可以使用本机Network插件轻松完成.

ionic cordova plugin add cordova-plugin-network-@R_50_4045@ion
npm install --save @ionic-native/network

来自doc:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐