Nativescript访问android和ios中的localhost访问

时间:2016-08-23 17:51:35

标签: android ios nativescript angular2-nativescript

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

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

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

2 个答案:

答案 0 :(得分:3)

在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

答案 1 :(得分:1)

添加答案的打字稿版本

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