这个项目讲述了IOS与H5的交互过程。
- 函数传递
- 模型调用
- 事件传递
##1函数传递
头文件
#import <JavaScriptCore/JavaScriptCore.h>
h5 函数
var jsFunc = function() {
alert('Objective-C call js to show alert');
}
OC 使用
// JS调用后OC后,又通过OC调用JS,但是这个是没有传参数的
JSValue *jsFunc = self.jsContext[@"jsFunc"];
[jsFunc callWithArguments:nil];
##2模型调用
h5
// h5
<input type="button" value="Call ObjC system camera" onclick="OCModel.callSystemCamera()">
点击H5,获取OC模型
@property (nonatomic, strong) UIWebView *webView;
@property (nonatomic, strong) JSContext *jsContext;
self.jsContext[@"OCModel"] = model;
model.jsContext = self.jsContext;
model.webView = self.webView;
OC Model
// 此模型用于注入JS的模型,这样就可以通过模型来调用方法。
@interface HYBJsObjCModel : NSObject <JavaScriptObjectiveCDelegate>
@property (nonatomic, weak) JSContext *jsContext;
@property (nonatomic, weak) UIWebView *webView;
@end
// Js调用了callSystemCamera
- (void)callSystemCamera {
NSLog(@"JS调用了OC的方法,调起系统相册");
// JS调用后OC后,又通过OC调用JS,但是这个是没有传参数的
JSValue *jsFunc = self.jsContext[@"jsFunc"];
[jsFunc callWithArguments:nil];
}
- 通过OC对象调用:
- 函数
- 传值
- 获取
- 直接调用
- 模型调用
- 被H5调用
- 实现调用协议
- 实现调用方法