oc直接执行js代码(不使用webview)
2018-07-03 本文已影响29人
Gu_Liang
我们项目有个计算器类型的需求,前端已经用js代码写好了逻辑,app只需要调用js代码就可以了,但是页面并不是html。
导入框架
#import <JavaScriptCore/JavaScriptCore.h>
1.首先需要把js代码转换成字符串注入到JSContext
NSString *calcPath = [[NSBundle mainBundle] pathForResource:@"calc" ofType:@"js"];
NSString *calcJS= [NSString stringWithContentsOfFile:calcPath encoding:NSUTF8StringEncoding error:nil];
JSContext *context = [JSContext new];
[contextevaluateScript:calcJS];
2.这时就只需要调用js方法就好了
JSValue *value = [context evaluateScript:@"calc.festMonth(2018-09)"];//js的调用方法
或者
JSValue*festMonth = context[@"calc"][@"festMonth"];//获取方法
JSValue *value2 = [festMonth callWithArguments:@[@"2018-09"]];//调用方法 传参