iOS开发中JS调用原生方法并传值

项目需要,闲着无事,这里特来记录下JS调用原生并且给控制器传值调用方法等的操作;

步骤如下;

1.  倒入框架

#import <JavaScriptCore/JavaScriptCore.h>倒入框架(如不知道这个框架的作用,请自行查找下相关资料,这里指介绍怎么使用)


2.声明协议,相当于代理,给本控制器需要被js调用的方法写协议

@protocol JSTungExport <JSExport>


// 参数

-(void)yourMethod:(NSString *)param;

// 无参

-(void)yourMethod;


@end


3. 添加属性

  JSContext *jsContext;(js的一个执行环境)



3. 在控制器中写下如下代码

 class_addProtocol([yourVC class],@protocol(JSTungExport));


4. 在webview的delegate中实现js的相关方法,

- (void)webViewDidFinishLoad:(UIWebView *)webView

{ 

      jsContext = [self.jsWebViewvalueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];


     jsContext[@"params"] = self;  // 此处的参数是js那边待用本地方法的前缀名,如:(params.yourMethod),(params.yourMethod:参数)

  // 以上的参数与前端沟通,看他是怎么写的;


}

5. 实现方法


// 参数

-(void)yourMethod:(NSString *)param

{


}

// 无参

-(void)yourMethod

{


}


上述只讲道js调用本地方法并且传参数,oc调用js的方法传参数等比较简单,这里就不做讲解了。






猜你喜欢

转载自blog.csdn.net/whjay520/article/details/53486717