/* * 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 #import @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