You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
219 lines
6.5 KiB
219 lines
6.5 KiB
/* |
|
* Licensed to the Apache Software Foundation (ASF) under one |
|
* or more contributor license agreements. See the NOTICE file |
|
* distributed with this work for additional information |
|
* regarding copyright ownership. The ASF licenses this file |
|
* to you under the Apache License, Version 2.0 (the |
|
* "License"); you may not use this file except in compliance |
|
* with the License. You may obtain a copy of the License at |
|
* |
|
* http://www.apache.org/licenses/LICENSE-2.0 |
|
* |
|
* Unless required by applicable law or agreed to in writing, |
|
* software distributed under the License is distributed on an |
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
|
* KIND, either express or implied. See the License for the |
|
* specific language governing permissions and limitations |
|
* under the License. |
|
*/ |
|
|
|
#import <Foundation/Foundation.h> |
|
#import <JavaScriptCore/JavaScriptCore.h> |
|
|
|
@class WXBridgeMethod; |
|
@class WXSDKInstance; |
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
void WXPerformBlockOnBridgeThread(void (^block)(void)); |
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
|
@interface WXBridgeManager : NSObject |
|
|
|
/** |
|
* return instance at the top of the stack. |
|
**/ |
|
@property (nonatomic, weak, readonly) WXSDKInstance *topInstance; |
|
|
|
/** |
|
* Create Instance Method |
|
* @param instance : instance id |
|
* @param temp : template data |
|
* @param options : parameters |
|
* @param data : external data |
|
**/ |
|
- (void)createInstance:(NSString *)instance |
|
template:(NSString *)temp |
|
options:(NSDictionary *)options |
|
data:(id)data; |
|
|
|
/** |
|
* Create Instance with opcode |
|
* @param instance : instance id |
|
* @param contents : opcode data |
|
* @param options : parameters |
|
* @param data : external data |
|
**/ |
|
- (void)createInstance:(NSString *)instance |
|
contents:(NSData *)contents |
|
options:(NSDictionary *)options |
|
data:(id)data; |
|
|
|
/** |
|
* @abstract return currentInstanceId |
|
**/ |
|
- (NSArray *)getInstanceIdStack; |
|
|
|
/** |
|
* Destroy Instance Method |
|
* @param instance : instance id |
|
**/ |
|
- (void)destroyInstance:(NSString *)instance; |
|
|
|
/** |
|
* Trigger full GC, for dev and debug only. |
|
**/ |
|
- (void)forceGarbageCollection; |
|
|
|
/** |
|
* Refresh Instance Method |
|
* @param instance : instance id |
|
* @param data : external data |
|
**/ |
|
- (void)refreshInstance:(NSString *)instance data:(id)data; |
|
|
|
/** |
|
* Unload |
|
**/ |
|
- (void)unload; |
|
|
|
/** |
|
* Update Instance State Method |
|
* @param instance : instance id |
|
* @param data : parameters |
|
**/ |
|
- (void)updateState:(NSString *)instance data:(id)data; |
|
|
|
/** |
|
* Execute JSFramework Script |
|
* @param script : script code |
|
**/ |
|
- (void)executeJsFramework:(NSString *)script; |
|
|
|
/** |
|
* Register JS service Script |
|
* @param name : service name |
|
* @param serviceScript : script code |
|
* @param options : service options |
|
* @param completion : completion callback |
|
**/ |
|
- (void)registerService:(NSString *)name withService:(NSString *)serviceScript withOptions:(NSDictionary *)options completion:(void(^)(BOOL result))completion; |
|
|
|
|
|
/** |
|
* Register JS service Script |
|
* @param name : service name |
|
* @param serviceScriptUrl : script url |
|
* @param options : service options |
|
* @param completion : completion callback |
|
**/ |
|
-(void)registerService:(NSString *)name withServiceUrl:(NSURL *)serviceScriptUrl withOptions:(NSDictionary *)options completion:(void(^)(BOOL result))completion; |
|
|
|
/** |
|
* Unregister JS service Script |
|
* @param name : script code |
|
**/ |
|
- (void)unregisterService:(NSString *)name; |
|
|
|
/** |
|
* Register Modules Method |
|
* @param modules : module list |
|
**/ |
|
- (void)registerModules:(NSDictionary *)modules; |
|
|
|
/** |
|
* Register Components Method |
|
* @param components component list |
|
**/ |
|
- (void)registerComponents:(NSArray* )components; |
|
|
|
/** |
|
* FireEvent |
|
* @param instanceId instance id |
|
* @param ref : node reference |
|
* @param type : event type |
|
* @param params : parameters in event object |
|
* @param domChanges dom value changes, used for two-way data binding |
|
**/ |
|
- (void)fireEvent:(NSString *)instanceId ref:(NSString *)ref type:(NSString *)type params:(NSDictionary *)params domChanges:(NSDictionary *)domChanges; |
|
|
|
/** |
|
* FireEvent |
|
* @param instanceId instance id |
|
* @param ref : node reference |
|
* @param type : event type |
|
* @param params : parameters in event object |
|
* @param domChanges dom value changes, used for two-way data binding |
|
* @param handlerArguments : arguments passed to event handler |
|
**/ |
|
- (void)fireEvent:(NSString *)instanceId ref:(NSString *)ref type:(NSString *)type params:(NSDictionary *)params domChanges:(NSDictionary *)domChanges handlerArguments:(NSArray *)handlerArguments; |
|
|
|
- (JSValue *)fireEventWithResult:(NSString *)instanceId ref:(NSString *)ref type:(NSString *)type params:(NSDictionary *)params domChanges:(NSDictionary *)domChanges; |
|
|
|
/** |
|
* componentHook |
|
* @param instanceId : instance id |
|
* @param componentId : compoent id |
|
* @param type : component hook Type, such as life-cycle |
|
* @param hookPhase : hook phase |
|
*/ |
|
- (void)callComponentHook:(NSString*)instanceId componentId:(NSString*)componentId type:(NSString*)type hook:(NSString*)hookPhase args:(NSArray*)args competion:(void (^)(JSValue * value))complection; |
|
/** |
|
* callBack |
|
* |
|
* @param instanceId instanceId |
|
* @param funcId funcId |
|
* @param params params |
|
* @param keepAlive indicate that whether this func will be reused |
|
*/ |
|
- (void)callBack:(NSString *)instanceId funcId:(NSString *)funcId params:(id)params keepAlive:(BOOL)keepAlive; |
|
|
|
/** |
|
* Connect To WebSocket for devtool debug |
|
* @param url : url to connect |
|
**/ |
|
- (void)connectToDevToolWithUrl:(NSURL *)url; |
|
|
|
/** |
|
* CallBack |
|
* @param instanceId instance id |
|
* @param funcId : callback id |
|
* @param params : parameters |
|
**/ |
|
- (void)callBack:(NSString *)instanceId funcId:(NSString *)funcId params:(id)params; |
|
|
|
/** |
|
* Connect To WebSocket for collecting log |
|
* @param url : url to connect |
|
**/ |
|
- (void)connectToWebSocket:(NSURL *)url; |
|
|
|
/** |
|
* Log To WebSocket |
|
* @param flag : the tag to identify |
|
* @param message : message to output |
|
**/ |
|
- (void)logToWebSocket:(NSString *)flag message:(NSString *)message; |
|
|
|
/** |
|
* Reset Environment |
|
**/ |
|
- (void)resetEnvironment; |
|
|
|
- (void)fireEvent:(NSString *)instanceId ref:(NSString *)ref type:(NSString *)type params:(NSDictionary *)params DEPRECATED_MSG_ATTRIBUTE("Use fireEvent:ref:type:params:domChanges: method instead."); |
|
- (void)executeJsMethod:(WXBridgeMethod *)method DEPRECATED_MSG_ATTRIBUTE(); |
|
|
|
@end
|
|
|