Nativescript访问android和ios中的localhost访问

我的系统上运行了本地节点rest api。

我的问题是,当从android访问localhost时,我们应该使用10.0.2.2。 当使用ios时,我们可以使用localhost。

那么有没有办法可以控制我们调用的主机名,具体取决于nativescript应用程序中的环境ios或android

在JS文件中你可以使用以下(当你需要快速决定每个平台代码使用什么时更好)

/*at top file*/ var platform = require("platform"); var nativePlatformLocalhost; /*in some function or globally*/ if(platform.device.os === platform.platformNames.ios){ /*localhost for ios*/ nativePlatformLocalhost= "localhost"; } else if(platform.device.os === platform.platformNames.android){ /*localhost for android*/ nativePlatformLocalhost= "10.0.2.2"; } 

或者如果你需要更复杂的基于平台的android / ios代码,你可以编写两个文件,一个用于android,一个用于ios,具有名称约定,并且需要如下行

 require("file.js"); 

当你创建两个具有以下名称的文件时,你将获得基于当前运行平台运行时的文件

 file.android.js file.ios.js 

http://docs.nativescript.org/ui/supporting-multiple-screens.html#platform-qualifiers

添加答案的打字稿版本

 import {platformNames} from "platform"; import {device} from "platform"; var nativePlatformLocalhost; /*in some function or globally*/ if(device.os === platformNames.ios){ /*localhost for ios*/ nativePlatformLocalhost= "localhost"; } else if(device.os === platformNames.android){ /*localhost for android*/ nativePlatformLocalhost= "10.0.2.2"; }