在Nativescript中获取mac地址和ip

时间:2016-11-28 20:30:28

标签: nativescript

我们正在实施用于分发应用的服务器,我们需要通过以下方式限制对应用的访问:

  • mac地址
  • IP

目前我还没有找到任何可以通过nativescript从设备获取此数据的模块,所以我不知道是否有插件或者我还能怎样实现这一点。

1 个答案:

答案 0 :(得分:1)

在nativescript中,您可以访问设备的原生api 因此,如果没有任何模块/插件,您可以使用此选项访问本机API。 https://docs.nativescript.org/core-concepts/accessing-native-apis-with-javascript

例如,有mac地址here的解决方案 在JAVA:

WifiManager wifiManager = (WifiManager)  getSystemService(Context.WIFI_SERVICE);
WifiInfo wInfo = wifiManager.getConnectionInfo();
String mac = wInfo.getMacAddress();

我们可以用这样的javascript编写它:

首先我们应该确定这个getSystemService

在搜索android文档后我们发现:

getSystemService位于android.content.Context 用于访问nativescript中的上下文http://docs.nativescript.org/cookbook/application

我们可以做到:

import app = require("application");
app.android.context;

所以让我们用javascript写一下:

我们在javascript中没有类型,所以我们使用var代替;

  var context = android.content.Context;
  var wifiManager = app.android.context.getSystemService(context.WIFI_SERVICE);
  var wInfo = wifiManager.getConnectionInfo();
  var mac = wInfo.getMacAddress();

注意1:如上面的java解决方案链接中所述,您应该将此权限<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>添加到app/App_Resources/AndroidManifest

注意2:上面的解决方案适用于android,对于ios,你应该找到带有objective_c的解决方案,并在nativescript文档的帮助下转换为javascript。

注意3:在android 6中你可能需要请求权限

您也可以使用此方法为nativescript创建插件。