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.
172 lines
5.6 KiB
172 lines
5.6 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 <JavaScriptCore/JavaScriptCore.h> |
|
|
|
typedef NSInteger(^WXJSCallNative)(NSString *instance, NSArray *tasks, NSString *callback); |
|
typedef NSInteger(^WXJSCallAddElement)(NSString *instanceId, NSString *parentRef, NSDictionary *elementData, NSInteger index); |
|
typedef NSInteger(^WXJSCallCreateBody)(NSString *instanceId, NSDictionary *bodyData); |
|
typedef NSInteger(^WXJSCallRemoveElement)(NSString *instanceId,NSString *ref); |
|
typedef NSInteger(^WXJSCallMoveElement)(NSString *instanceId,NSString *ref,NSString *parentRef,NSInteger index); |
|
typedef NSInteger(^WXJSCallUpdateAttrs)(NSString *instanceId,NSString *ref,NSDictionary *attrsData); |
|
typedef NSInteger(^WXJSCallUpdateStyle)(NSString *instanceId,NSString *ref,NSDictionary *stylesData); |
|
typedef NSInteger(^WXJSCallAddEvent)(NSString *instanceId,NSString *ref,NSString *event); |
|
typedef NSInteger(^WXJSCallRemoveEvent)(NSString *instanceId,NSString *ref,NSString *event); |
|
typedef NSInteger(^WXJSCallCreateFinish)(NSString *instanceId); |
|
typedef NSInteger(^WXJSCallRefreshFinish)(NSString *instanceId); |
|
typedef NSInteger(^WXJSCallUpdateFinish)(NSString *instanceId); |
|
typedef NSInvocation *(^WXJSCallNativeModule)(NSString *instanceId, NSString *moduleName, NSString *methodName, NSArray *args, NSDictionary *options); |
|
typedef void (^WXJSCallNativeComponent)(NSString *instanceId, NSString *componentRef, NSString *methodName, NSArray *args, NSDictionary *options); |
|
|
|
@protocol WXBridgeProtocol <NSObject> |
|
|
|
@property (nonatomic, readonly) JSValue* exception; |
|
|
|
/** |
|
* Executes the js framework code in javascript engine |
|
* You can do some setup in this method |
|
*/ |
|
- (void)executeJSFramework:(NSString *)frameworkScript; |
|
|
|
/** |
|
* Executes the js code in javascript engine |
|
* You can do some setup in this method |
|
*/ |
|
- (void)executeJavascript:(NSString *)script; |
|
|
|
/** |
|
* Executes global js method with specific arguments |
|
*/ |
|
- (JSValue *)callJSMethod:(NSString *)method args:(NSArray*)args; |
|
|
|
/** |
|
* Reset js engine environment, called when any environment variable is changed. |
|
*/ |
|
- (void)resetEnvironment; |
|
|
|
@optional |
|
|
|
/** |
|
* Remove instance's timer. |
|
*/ |
|
-(void)removeTimers:(NSString *)instance; |
|
|
|
/** |
|
* Called when garbage collection is wanted by sdk. |
|
*/ |
|
- (void)garbageCollect; |
|
|
|
@required |
|
|
|
/** |
|
* Register callback when call native tasks occur |
|
*/ |
|
- (void)registerCallNative:(WXJSCallNative)callNative; |
|
|
|
/** |
|
* Register callback when addElement tasks occur |
|
*/ |
|
- (void)registerCallAddElement:(WXJSCallAddElement)callAddElement; |
|
|
|
/** |
|
* Register callback when createBody tasks occur |
|
*/ |
|
- (void)registerCallCreateBody:(WXJSCallCreateBody)callCreateBody; |
|
|
|
/** |
|
* Register callback when removeElement tasks occur |
|
*/ |
|
- (void)registerCallRemoveElement:(WXJSCallRemoveElement)callRemoveElement; |
|
|
|
/** |
|
* Register callback when removeElement tasks occur |
|
*/ |
|
- (void)registerCallMoveElement:(WXJSCallMoveElement)callMoveElement; |
|
|
|
/** |
|
* Register callback when updateAttrs tasks occur |
|
*/ |
|
- (void)registerCallUpdateAttrs:(WXJSCallUpdateAttrs)callUpdateAttrs; |
|
|
|
/** |
|
* Register callback when updateStyle tasks occur |
|
*/ |
|
- (void)registerCallUpdateStyle:(WXJSCallUpdateStyle)callUpdateStyle; |
|
|
|
/** |
|
* Register callback when addEvent tasks occur |
|
*/ |
|
- (void)registerCallAddEvent:(WXJSCallAddEvent)callAddEvent; |
|
|
|
/** |
|
* Register callback when removeEvent tasks occur |
|
*/ |
|
- (void)registerCallRemoveEvent:(WXJSCallRemoveEvent)callRemoveEvent; |
|
|
|
/** |
|
* Register callback when createFinish tasks occur |
|
*/ |
|
- (void)registerCallCreateFinish:(WXJSCallCreateFinish)callCreateFinish; |
|
|
|
/** |
|
* Register callback for global js function `callNativeModule` |
|
*/ |
|
- (void)registerCallNativeModule:(WXJSCallNativeModule)callNativeModuleBlock; |
|
|
|
/** |
|
* Register callback for global js function `callNativeComponent` |
|
*/ |
|
- (void)registerCallNativeComponent:(WXJSCallNativeComponent)callNativeComponentBlock; |
|
|
|
@optional |
|
|
|
/** |
|
* Register callback when refreshFinish tasks occur |
|
*/ |
|
- (void)registerCallRefreshFinish:(WXJSCallRefreshFinish)callRefreshFinish; |
|
|
|
/** |
|
* Register callback when updateFinish tasks occur |
|
*/ |
|
- (void)registerCallUpdateFinish:(WXJSCallUpdateFinish)callUpdateFinish; |
|
|
|
/* |
|
* Executes the specified JavaScript code, treating the specified URL as its source location. |
|
* Evaluating a script runs any top-level code and adds function or object definitions to the brige’s global object. |
|
* The sourceURL parameter is informative only; debuggers may use this URL when reporting exceptions. |
|
@param script The JavaScript source code to evaluate. |
|
@param sourceURL A URL to be considered as the script’s origin. |
|
@return ReturnsThe last value generated by the script. Note that a script can result in the JavaScript value undefined. |
|
*/ |
|
- (JSValue *)executeJavascript:(NSString *)script withSourceURL:(NSURL*)sourceURL; |
|
|
|
|
|
@property (nonatomic, strong) NSString* weexInstanceId; |
|
|
|
/** |
|
set JavaScriptContext |
|
*/ |
|
- (void)setJSContext:(JSContext*)context; |
|
|
|
/* |
|
* javaScript runtime context |
|
*/ |
|
- (JSContext*)javaScriptContext; |
|
|
|
@end
|
|
|