我正在使用Kony创建一个全渠道应用程序,尽管它都是单个Javascript代码库,但我想根据应用程序是在iOS,Android还是网络浏览器上运行来有条件地执行一些逻辑。就像是:

if(isAndroid()) {
    //Do some stuff specific to Android.
}
else if(isIos()) {
    //Do some stuff specific to iOS.
}
else if(isWeb()) {
    //Do some stuff specific to Web.
}

最佳答案

Kony支持Preprocessor Directives之类的C compiler's preprocessors,就像android - 如何在Kony应用中执行逻辑,具体取决于它是在iOS,Android还是网络浏览器上运行-LMLPHP一样。由于Kony项目是用Javascript编写的,因此必须以特殊注释的形式添加这些语句,以免破坏Javascript语法。因此,例如#ifdef变为#ifdef

这些指令可用于编写由应用程序内置或不由应用程序内置的代码,具体取决于主机操作系统。因此,我通过编写以下代码解决了这个问题:

var channel;
//#ifdef PLATFORM_NATIVE_IOS
channel = "ios"
//#endif
//#ifdef PLATFORM_NATIVE_ANDROID
channel = "android"
//#endif

然后根据//#ifdef变量的值编写其余逻辑。

有关可在这些channel语句中使用的宏的完整列表,可以查看每个Kony Visualizer项目默认创建的//#ifdef模块的前几行。

ojit_a

10-07 22:26