码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发 UIWebView+JavaScript 交互总结

时间:2016-05-06 19:30:56      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:

算是个人项目经验的,印象比较深的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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!