标签:
算是个人项目经验的,印象比较深的Web+JS交互的使用
iOS原生应用与Web页面元素交互方式有很多,JavaScriptCore、拦截协议、第三方框架WebViewJavaScriptBridge、iOS8之后的WKWebView等;
简要记录下之前开发用到的两种方式:
1. 劫持页面加载,从 UIWebVIew 的 shouldStartLoadWithRequest 方法中拦截RequestURL 判断加载项,代码简要:
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *urlStr = [[request URL] absoluteString];
// 加载的url 关键词需要同后台约定
NSRange range_keyWord = [urlStr rangeOfString:@"opengood://"];
if (range_keyWord.length > 0) {
[self doSomeThing];
}
return YES;
}
2. iOS7之后水果公司推出的 JavaScriptCore 框架,交互起来挺方便的
需要注意的是JS调用的方法名等需要同前端的同事商定好,最好由前端提供给你。
浅显的说,这个方式相当于当前ViewController 成为页面JS的代理,不同web操作都能够有不同的JS方法与VC上面的代理方法相对应,
所以对于上面拦截web加载的方式,JavaScriptCore 的另一个优点就是提升代码可读性。。。
由于项目代码内部有涉及到公司业务不方便贴出来,给大家提供两个之前调研过的连接,里面有详尽的JavaScriptCore 使用
链接1
http://mp.weixin.qq.com/s?__biz=MzAxMzE2Mjc2Ng==&mid=401786074&idx=1&sn=f03d52e7b4f980d694ed4a6b0e808d3b&scene=23&srcid=0309JfhgdIYEJ4vg1YY3OD2T#rd
链接2
http://mp.weixin.qq.com/s?plg_nld=1&plg_auth=1&plg_nld=1&plg_dev=1&plg_uin=1&plg_usr=1&plg_vkey=1&plg_nld=1&plg_uin=1&mid=403853462&plg_nld=1&idx=1&scene=23&plg_auth=1&__biz=MjM5Nzc1MzU2NA%3D%3D&plg_dev=1&srcid=0308AYX0Hpyq3w7TEdwDQ8z8&plg_usr=1&sn=f7437fe6fa45e62d86c026efa4aa1645&plg_vkey=1#rd
在很多页面涉及web交互时,就要频繁调用JS与ViewController关联的方法
这个我写了一个web类目,提供下载链接,欢迎修改和完善
http://pan.baidu.com/s/1eRSt6p0
iOS开发 UIWebView+JavaScript 交互总结
标签:
原文地址:http://www.cnblogs.com/dev1024/p/5466525.html