1. Native(Objective-C或Swift)调用Javascript方法
app调取h5的js方法通过webView的方法stringByEvaluatingJavaScriptFromString,该方法返回执行js方法的结果。
NSString*lableText=[self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.xxx.sec.init.item%d.anchor",i]];
2. Javascript调用Native(Objective-C或Swift)方法
Javascript调用Native,并没有现成的API可以直接拿来用,而是需要通过webView的代理方法实现。UIWebView有个特性:在UIWebView内发起的所有网络请求,都可以通过delegate函数在Native层得到通知。我们就可以在UIWebView内发起一个自定义的网络请求,通常是这样的格式:wypic://image?url=http//:image…
其后也可以携带数据。
可以在h5页面写入这样的的格式js方法通过webView的代理函数响应js方法或获取数据
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
NSURL*url=[request URL];
if ([[url scheme] isEqualToString:@"wypic"]) {//判断域名
if ([[url host] isEqualToString:@"image"]) {
//app的方法
[self showImage:string];
}
return NO;
}
}