每种语言都由其优劣,出于开发周期,性能等多方面考虑,混编已经成为开发中的一种大趋势。
第一种:比较常见的就是使用OC中自带的UIWebView类,来实现加载H5网页界面。
第二种:WebViewJavascriptBridge开源库使用,然后注入相应的JS。
第三种:reactiveNative,是facebook2015年开放的一个开源框架。
第四种:iOS7之后出了JavaScriptCore.framework用于与JS交互,但是不支持iOS6,暂时先将demo链接放到这里 JavaScriptCoreDemo戳这里下载
一.iOS native与H5交互
创建webView,遵循代理并实现其方法:
1.--webViewDidStartLoad
在该方法中可以让“小菊花”即UIActivityIndicatorView开转
2.--webViewDidFinishLoad
小菊花停止转动,并从界面中移除
3.--webViewDidFailLoadWithError
做相关操作,打印错误原因,重载等
效果如下:
核心代码很简单,本次测试使用的是百度,且所有设置都写在了懒加载里面。
-(UIWebView *)webView {
if (!_webView) {
_webView = [[UIWebView alloc]initWithFrame:[UIScreen mainScreen].bounds];
_webView.delegate = self;
//适应屏幕
_webView.scalesPageToFit = YES;
//解决iOS9.2以上黑边问题
_webView.opaque = NO;
[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.baidu.com"]]];
NSLog(@"test");
//关闭多点触控
_webView.multipleTouchEnabled = YES;
//加载网页中的电话号码,单击可以拨打
_webView.dataDetectorTypes = YES;
}
return _webView;
}
第四种交互方式不作考虑,剩下的两种交互方式正在研究,后续更新。