Nativescript 在 android 和 ios 中访问 localhost 访问
Nativescript accessing localhost access in android and ios
我的系统上有一个本地节点 rest api 运行。
我的问题是,当从 android 访问本地主机时,我们应该使用 10.0.2.2。当使用 ios 时,我们可以使用 localhost 。
那么有没有一种方法可以控制我们调用的主机名,具体取决于环境 ios 或 android 在 nativescript 应用程序中
在 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";
}
我的系统上有一个本地节点 rest api 运行。
我的问题是,当从 android 访问本地主机时,我们应该使用 10.0.2.2。当使用 ios 时,我们可以使用 localhost 。
那么有没有一种方法可以控制我们调用的主机名,具体取决于环境 ios 或 android 在 nativescript 应用程序中
在 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";
}