// // PDRCoreDefs.h // PDRCore // // Created by X on 14-2-11. // Copyright (c) 2014年 io.dcloud. All rights reserved. // #import #import UIKIT_EXTERN NSString *const PDRCoreOpenUrlNotification; UIKIT_EXTERN NSString *const PDRCoreOpenUniversalLinksNotification; UIKIT_EXTERN NSString *const PDRCoreRevDeviceToken; UIKIT_EXTERN NSString *const PDRCoreRegRemoteNotificationsError; #if __has_feature(objc_arc) #define H5_AUTORELEASE(exp) exp #define H5_RELEASE(exp) exp #define H5_RETAIN(exp) exp #else #define H5_AUTORELEASE(exp) [exp autorelease] #define H5_RELEASE(exp) [exp release] #define H5_RETAIN(exp) [exp retain] #endif #ifndef H5_STRONG #if __has_feature(objc_arc) #define H5_STRONG strong #else #define H5_STRONG retain #endif #endif #ifndef H5_WEAK #if __has_feature(objc_arc_weak) #define H5_WEAK weak #elif __has_feature(objc_arc) #define H5_WEAK unsafe_unretained #else #define H5_WEAK assign #endif #endif #if DEBUG #define H5CORE_LOG NSLog #else #define H5CORE_LOG #endif #define kPDRCoreAppWindowAnimationDefaltDuration .3f typedef NS_ENUM(NSInteger, PDRCoreRunMode) { /** 正常启动runtime 使用该方法启动runtime具有全部功能 包括具有应用管理、窗口管理、插件管理、权限管理、资源管理等功能 */ PDRCoreRunModeNormal = 0, /** 使用该方法启动的runtime不具有应用管理窗口管理功能 当需要显示页面时,需要自己创建PDRCoreAppFrame */ PDRCoreRunModeWebviewClient = 1, /** 使用该方法启动的runtime具有正常启动所有功能但不包含启动图片 应用升级、应用copy运行逻辑,该启动会自动启动app管理器但 不会自动创建app,需要自己创建app */ PDRCoreRunModeAppClient }; /// 系统事件类型定义 typedef NS_ENUM(NSInteger, PDRCoreSysEvent) { /// 网络状态改变事件 Reserved PDRCoreSysEventNetChange = 1, /// 程序进入后台事件 PDRCoreSysEventEnterBackground, /// 程序进入前台事件 PDRCoreSysEventEnterForeGround, /// 打开URL事件 PDRCoreSysEventOpenURL, /// 打开URL事件带参数 PDRCoreSysEventOpenURLWithOptions, /// 本地自定义消息提醒 PDRCoreSysEventRevLocalNotification, /// APNS事件 PDRCoreSysEventRevRemoteNotification, /// 获取到APNS DeviceToken事件 PDRCoreSysEventRevDeviceToken, /// 获取到APNS错误 PDRCoreSysEventRegRemoteNotificationsError, /// 低内存警告 PDRCoreSysEventReceiveMemoryWarning, /// 屏幕旋转事件 Reserved PDRCoreSysEventInterfaceOrientation, /// 按键事件 PDRCoreSysEventKeyEvent, /// 全屏 PDRCoreSysEventEnterFullScreen, /// 点击了shortcut Reserved PDRCoreSysEventPeekQuickAction, /// 应用暂停,被其他应用覆盖 PDRCoreSysEventResignActive, /// 应用被激活,重新处于活动状态 PDRCoreSysEventBecomeActive, /// 系统主动触发状态栏隐藏显示 PDRCoreSysEventStatusbarChange, /// 执行weex post mesasge PDRCoreSysEventWeexPostMessage, /// 打印weex log PDRCoreSysEventWeexOutputLog, /// 执行weex post mesasge PDRCoreSysEventPostMessageToWeexControl, ///通用链接 PDRCoreSysEventContinueUserActivity, ///weex内核重新启动事件 PDRCoreSysEventWeexSDKEngineRestart }; /// app Statusbar style typedef enum { //深色背景样式(深色底白字,即状态栏前景文字为白色),此时background建议设置为深颜色 PDRCoreStatusBarStyleLight, //浅色背景样色(浅色底黑字,即状态栏前景文字为黑色),此时background建设设置为浅颜色 PDRCoreStatusBarStyleDark } PDRCoreStatusBarStyle; typedef NS_ENUM(NSInteger, PDRCoreStatusBarMode) { PDRCoreStatusBarModeNormal = 1, PDRCoreStatusBarModeImmersion }; /// runtime错误码定义 enum { PDRCoreSuccess = 0, PDRCoreNetObserverCreateError = 1, PDRCoreInvalidParamError, PDRCoreFileNotExistError, PDRCorePandoraApibundleMiss, PDRCoreStatusError, PDRCoreNetError, PDRCoreUnknownError, /// 资源管理器启动失败 PDRCoreErrorResManagerBase = 10000, /// 应用管理类错误 PDRCoreErrorAppManagerBase = 20000, PDRCoreErrorDownloadStreamJSON, PDRCoreErrorStreamJSONFormat, PDRCoreErrorDownloadIndexPage, PDRCoreErrorUsercancel, PDRCoreInvalidMainpageError, /// 无效的mainfest文件 PDRCoreAppInvalidMainfestError }; #define kAppManagerOpenAppMaxDefalut 3 #define kWindowAppBarViewHeight (44) #define kWindowTitleNViewHeight (44) #define kWindowTitleNView_btn_W (41) #define kWindowStatusBarViewHeight (20) #define kWindowNavStatusbarViewHeight (([PTDeviceOSInfo deviceType]==PTDeviceTypeiPhoneX)?44:20) #define DCCoreWeexBridge ([PDRCore Instance].weexImport) @interface H5Server : NSObject + (NSString*)identifier; - (void)onCreate; - (void)onDestroy; @end typedef void (^H5CoreComplete)(id);