Nativescript:如何在仿真器和真实设备上使用不同的环境变量?

时间:2019-05-15 00:47:46

标签: android webpack nativescript

我正在使用Nativescript-Vue构建一个项目。我使用Webpack进行标准安装。

我知道我可以使用以下方法传递不同的变量:

  

tns构建android --bundle --env.development --env.property = value

我如何才能在两个不同的平台(仿真器和真实设备,它们都是“开发”)之间“区分”,以便传递不同的API URL?

2 个答案:

答案 0 :(得分:1)

您可以检查android.os.Build中的Build属性,并查看Build.BRAND.startsWith(“ generic”)或Build.DEVICE.startsWith(“ generic”))还是Build.PRODUCT.contains (“仿真器”)。

您还可以参考here中所述的更多属性。

答案 1 :(得分:1)

您可以这样做,

        if (isIOS) {
            const description = String(NSString.stringWithUTF8String(NXGetLocalArchInfo()[0].description));
            this.isSimulator = description.indexOf("x86") !== -1 || description.indexOf("i386") !== -1;
        }
        if (isAndroid) {
            this.isSimulator = android.os.Build.FINGERPRINT.startsWith("generic")
                || android.os.Build.FINGERPRINT.startsWith("unknown")
                || android.os.Build.MODEL.indexOf("google_sdk") !== -1
                || android.os.Build.MODEL.indexOf("Emulator") !== -1
                || android.os.Build.MODEL.indexOf("Android SDK built for x86") !== -1
                || android.os.Build.MANUFACTURER.indexOf("Genymotion") !== -1
                || (android.os.Build.BRAND.startsWith("generic") && android.os.Build.DEVICE.startsWith("generic"))
                || android.os.Build.PRODUCT === "google_sdk";
        }

Android版本与答案中链接的@Narendra几乎相同,但更多的是NativeScript / JavaScript版本。

Playground Sample