PDRCore.h
5.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
//
// 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