我們項目有個計算器類型的需求,前端已經(jīng)用js代碼寫好了邏輯炭庙,app只需要調(diào)用js代碼就可以了,但是頁面并不是html。
導(dǎo)入框架
#import <JavaScriptCore/JavaScriptCore.h>
1.首先需要把js代碼轉(zhuǎn)換成字符串注入到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.這時就只需要調(diào)用js方法就好了
JSValue *value = [context evaluateScript:@"calc.festMonth(2018-09)"];//js的調(diào)用方法
或者
JSValue*festMonth = context[@"calc"][@"festMonth"];//獲取方法
JSValue *value2 = [festMonth callWithArguments:@[@"2018-09"]];//調(diào)用方法 傳參