EasyJSWebView 是类似 Android javascriptInterface 的 uiwebview js 调用原生代码框架
示例代码:
先建一个MyJSInterface接口
@interface MyJSInterface : NSObject - (void) test;- (void) testWithParam: (NSString*) param;- (void) testWithTwoParam: (NSString*) param AndParam2: (NSString*) param2;- (NSString*) testWithRet; @end
然后把MyJSInterface 添加到 UIWebView.
MyJSInterface* interface = [MyJSInterface new];[self.myWebView addJavascriptInterfaces:interface WithName:@"MyJSTest"];[interface release];
在Javascript中, 你可以使用如下代码调用 Objective-C 方法.
MyJSTest.test();MyJSTest.testWithParam("ha:ha");MyJSTest.testWithTwoParamAndParam2("haha1", "haha2"); var str = MyJSTest.testWithRet();
你也可以通过回调获取到方法执行结果
Objective-C 代码如下:
- (void) testWithFuncParam: (EasyJSDataFunction*) param{ NSLog(@"test with func"); NSString* ret = [param executeWithParam:@"blabla:\"bla"]; NSLog(@"Return value from callback: %@", ret);}
js调用方法如下:
MyJSTest.testWithFuncParam(function (data){ alert(data); //data would be blabla:"bla return "some data";});