123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- //
- // PDRCore.h
- // Pandora Project
- //
- // Created by Mac on 12-12-25.
- // Copyright (c) 2012年 DCloud. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import "PDRCoreDefs.h"
- #import "PDRCoreSettings.h"
- //#import "WXSDKInstance.h"
- @class PDRCoreWindowManager;
- @class PDRCoreAppManager;
- @class H5CoreRootViewController;
- /// H5+代理类用于和宿主环境沟通
- @protocol PDRCoreDelegate <NSObject>
- @optional
- /// @brief 获取状态栏颜色
- -(UIColor*)getStatusBarBackground;
- /// @brief 设置状态栏颜色
- -(void)setStatusBarBackground:(UIColor*)newColor;
- /// @brief 设置状态栏样式
- -(void)setStatusBarStyle:(UIStatusBarStyle)statusBarStyle;
- -(void)setStatusBarHidden:(BOOL)isHidden;
- -(UIStatusBarStyle)getStatusBarStyle;
- -(void)wantsFullScreen:(BOOL)fullScreen;
- -(BOOL)getStatusBarHidden;
- -(BOOL)closeCore;
- - (BOOL)canCloseSplash;
- - (void)refreshTopWebviewStart;
- - (void)refreshTopWebviewEnd;
- - (void)getWebviewFavoriteOptions:(NSDictionary*)fav;
- //options :@{enableauthority:@(true),enableserver:@(true),geo:(true)}
- - (NSString*)getCurrentLocationWithOptions:(NSDictionary*)options
- withResult:(void (^)(NSString*address,NSError*error))block1;
- - (void)canaleGetCurrentLocationWithId:(NSString*)locationId;
- - (BOOL)interruptCloseSplash;
- - (void)settingLoadEnd;
- - (void)setHomeIndicatorAutoHidden:(BOOL)isHidden;
- @end
- /// H5+核心类负责H5+runtime的启动关闭
- @interface PDRCore : NSObject
- @property(nonatomic, readonly)PDRCoreRunMode runMode;
- @property(nonatomic, retain)NSData *deviceToken;
- /// @brief Runtime应用管理对象
- @property(nonatomic, readonly)PDRCoreAppManager *appManager;
- /// @brief Runtime设置对象,保存设置信息
- @property(nonatomic, readonly)PDRCoreSettings *settings;
- @property(nonatomic, readonly)BOOL lockScreen;
- /// @brief Runtime代理类
- @property(nonatomic, assign)id<PDRCoreDelegate> coreDeleagete;
- /// @brief 设置5+Runtime ViewContoller persentViewController 未设置使用rootViewContoller
- @property(nonatomic, assign)UIViewController *persentViewController;
- @property(nonatomic, assign)BOOL setRenderWithViewController;
- @property(nonatomic, retain, readonly)H5CoreRootViewController *rootViewController;
- + (void)runInBackgroud:(void (^)(void))block;
- + (void)runInBackgroudConcurrent:(void (^)(void))block;
- + (void)runInMainThread:(void (^)(void))block1;
- /// @brief 获取Core单例对象
- + (PDRCore*)Instance;
- #pragma mark - life cycle
- /// @brief 设置shell启动参数
- + (BOOL)initEngineWihtOptions:(NSDictionary *)launchOptions
- withRunMode:(PDRCoreRunMode)runMode;
- + (BOOL)initEngineWihtOptions:(NSDictionary *)launchOptions
- withRunMode:(PDRCoreRunMode)runMode withDelegate:(id<PDRCoreDelegate>)delegate;
- /// @brief 关闭runtime
- + (BOOL)destoryEngine;
- /// @brief 设置runtime根视图的父亲View
- - (int)setContainerView:(UIView*)containerView;
- /// @brief 通知runtime处理指定的事件
- + (id)handleSysEvent:(PDRCoreSysEvent)evt withObject:(id)object;
- - (id)handleSysEvent:(PDRCoreSysEvent)evt withObject:(id)object;
- /// @brief 获取PandoraApi.bundle的路径
- - (NSString*)mainBundlePath;
- /// @brief 设置应用运行时目录<br/>
- /// 当应用 runmode为liberate时将把资源拷贝到该目录<br/>
- /// 应用运行时产生的文件在该目录下生成</br>
- /// 默认为Library/Pandora/apps/<br/>
- - (int)setAppsRunPath:(NSString*)workPath;
- /// @brief 设置runtime应用的安装目录<br/>该地址为安装包中携带的应用资源位置 默认地址为?.app/Pandora/apps/
- - (int)setAppsInstallPath:(NSString*)installPath;
- /// @brief 设置runtime文档目录.
- - (int)setDocumethPath:(NSString*)documentPath;
- /// @brief 设置runtime下载目录
- - (int)setDownloadPath:(NSString*)downlaodPath;
- + (void)setHasBarview:(BOOL)hasBarview;
- + (void)setBarviewHeight:(CGFloat)barviewHeight;
- + (BOOL)hasBarview;
- /**
- @brief 设置指定app的文档目录
- @param appid 要设置的appid
- @param doucmentPath 要设置的路径
- @return int 0 成功
- */
- - (int)setApp:(NSString*)appid documentPath:(NSString*)doucmentPath;
- /**
- @brief 注册第三方扩展的插件
- @param pluginName 插件名称JS文件中定义的名字
- @param impClassName 插件对应的实现类名
- @param pluginType 插件类型 详情: `PDRExendPluginType`
- @see PDRExendPluginType
- @param javaScript js实现 为javascript文本
- @return int 0 成功
- */
- - (int)regPluginWithName:(NSString*)pluginName
- impClassName:(NSString*)impClassName
- type:(PDRExendPluginType)pluginType
- javaScript:(NSString*)javaScript;
- /**
- @brief 注册第三方扩展的插件
- @param pluginName 插件名称JS文件中定义的名字
- @param impClassName 插件对应的实现类名
- @param pluginType 插件类型 详情: `PDRExendPluginType`
- @see PDRExendPluginType
- @param javaScript js实现 为javascript文件 该文件为同步加载
- @return int 0 成功
- */
- - (int)regPluginWithName:(NSString*)pluginName
- impClassName:(NSString*)impClassName
- type:(PDRExendPluginType)pluginType
- javaScriptPath:(NSString*)javaScript;
- #pragma mark - 以下接口PDRCoreRunModeNormal才支持,SDK一般不需要使用
- - (int)start;
- + (void)startMainApp;
- /**
- @brief 显示启动图
- PDRCoreRunModeNormal 才支持
- @see start
- @return int
- */
- - (int)showLoadingPage;
- - (int)closeLoadingPage;
- - (BOOL)isSplashPageClosed;
- /// @brief 设置runtiem启动时自动运行的APP PDRCoreRunModeNormal 才支持
- - (int)setAutoStartAppid:(NSString*)appid;
- - (void)showChildUIViewController:(UIViewController*)childUIViewController;
- - (void)hideChildUIViewController:(UIViewController*)childUIViewController;
- //#pragma deprecated
- //- (int)load __attribute__((deprecated));
- //- (int)unLoad __attribute__((deprecated));
- //- (int)startAsWebClient __attribute__((deprecated));
- //- (int)startAsAppClient __attribute__((deprecated));
- //- (int)end __attribute__((deprecated));
- @end
|