我正在使用 flashbuilder 4.6、Flex SDK 4.6 为 iOS 和 Android 创建一个移动应用程序。
我正在为 Google Cloud Messaging 使用 ANE,在为 iOS 编译时我想跳过它。flashbuilder 中是否有任何定义来检查它是为 iOS 还是 Android 编译,所以我可以跳过 GCM 导入。我不想在每次编译我的应用程序时更改我的编译器定义。
另一种方法是在编译器参数中使用 IF 语句:
if (compiling for ios)
-define+=CONFIG::IOS,true
else
-define+=CONFIG::IOS,false
是否可以做这样的事情,或者是否有任何内置编译器定义我可以在我的代码中使用?
编辑:包管理器有 3 个类:
- NotificationManager.as
- NotificationManagerIOS.as(适用于 iOS 的单例,使用来自 Air 的 RemoteNotification)
- NotificationManagerAndroid.as (Singleton for Android,使用不支持 iOS 的 ANE)
为 android 编译很好,为 iOS 编译会在 ANE 的类上出现错误。
NotificationManager.as:
package managers {
public class NotificationManager {
public static function getInstance():NotificationManager {
var ios:Boolean = (Capabilities.manufacturer.indexOf("iOS") != -1);
if (ios) {
return NotificationManagerIOS.getInstance();
} else {
return NotificationManagerAndroid.getInstance();
}
}
}
}