在OC與JS交互時要導入#import<JavaScriptCore/JavaScriptCore.h>
1.創(chuàng)建一個webview,加載目標html文件往声。
2.要清楚html文件的內容擂找,了解js的函數(shù)。
3.iOS調用html中的方法浩销,使用系統(tǒng)自帶的具體實現(xiàn)如下:
//oc調用html的方法? =====前提是html方法中存在
[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"showTitleMessage('%@')",@"oc調用了js的內容"]];
//showTitleMessage 為html中的函數(shù)
4.js調用OC方法贯涎,首先在iOS端實現(xiàn)js中已經(jīng)定義但未實現(xiàn)的函數(shù)惹盼,具體如下:
//獲取上下文文件(相當一個操作的方法工具巡雨,用于獲取html中的方法和其它)
JSContext *content = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
/**
*? 為html中的方法賦值肮塞,定義html中bdgt的方法內容
*任意html函數(shù)中的bdgt(參數(shù))溯革;格式的變量乐横,都可以通過上下文獲取到并進行復制操作爆哑,調用oc的方法液茎。
即content[@"begt"]=^(){}
*
*/
content[@"bdgt"] = ^() {
NSLog(@"js調用oc---------begin--------");
//獲取html中bdgt的參數(shù)返回一個數(shù)組
NSArray *thisArr = [JSContext currentArguments];
for (JSValue *jsValue in thisArr) {
NSLog(@"=======%@",jsValue);
}
//獲取調用html方法的對象
JSValue *this = [JSContext currentThis];
NSLog(@"this: %@",this);
NSLog(@"js調用oc---------The End-------");
};
html代碼如下:
OC實現(xiàn)代碼如下: