iOS中使用UIWebView与JS进行交互

前一段忙着面试和复习,这两天终于考完试了,下学期的实习也有了着落,把最近学的东西更新一下,首先是使用UIWebView与JS进行交互

在webView中我静态获取了一个有图片的网页,我想为每张图片添加点击事件,就必须用到JS了

首先创建JS文件,如下:

 //给每张img添加点击事件
function setImageClickFunction(){
var imgs = document.getElementsByTagName("img");
for (var i=0;i<imgs.length;i++){
var src = imgs[i].src;
imgs[i].setAttribute("onClick","change_pic(src)");
}
document.location = imageurls;
} //点击图片后返回给OC的回调函数
function change_pic(imagesrc){
var url = imagesrc;
// window.open("www.baidu.com")
document.location = url;
}

之后在HTML中插入该JS文件,并且在<body>​中调用setImageClickFunction函数

在这里因为调用的是返回JSON的API,其中包含静态HTML和CSS链接,如果是动态网页直接load的话,在webViewWillLoad:函数中调用你的JS函数即可

 //在加载静态Web这种情况下
NSString *js = [NSString stringWithFormat:@"<script type=\"text/javascript\">%@</script>", [NSString stringWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"ClickImage" withExtension:@"js"] encoding:NSUTF8StringEncoding error:nil]];
NSString *html = [NSString stringWithFormat:@"<html><head>%@<link rel=\"stylesheet\" href=%@></head><body>%@</body></html>", js, css, body];
[self.webView loadHTMLString:html baseURL:nil]; //调用JS中的函数,为图片添加点击事件
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[self.webView stringByEvaluatingJavaScriptFromString:@"setImageClickFunction()"];
}

这样就为所有的图片添加了点击事件,在点击图片后,js回调给oc的下面方法

 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSLog(@"%@", request.URL.absoluteStrting);
}

在上面的方法中可以对回调的如这样的"https://pic3.zhimg.com/b4f7acc26514fb634131b04a430e6cbf_b.jpg”String进行其他处理

在其他情况也可以调用下面的方法插入JS语句,或调用JS函数
[self.webView stringByEvaluatingJavaScriptFromString:string];
 

 
最后附上document、location、body属性方法JS对象

document:属性

document.title                 //设置文档标题等价于HTML的<title>标签

document.bgColor               //设置页面背景色

document.fgColor               //设置前景色(文本颜色)

document.linkColor             //未点击过的链接颜色

document.alinkColor            //激活链接(焦点在此链接上)的颜色

document.vlinkColor            //已点击过的链接颜色

document.URL                   //设置URL属性从而在同一窗口打开另一网页

document.fileCreatedDate       //文件建立日期,只读属性

document.fileModifiedDate      //文件修改日期,只读属性

document.fileSize              //文件大小,只读属性

document.cookie                //设置和读出cookie

document.charset               //设置字符集 简体中文:gb2312

document:方法

document.write()                      //动态向页面写入内容

document_createElement_x_x(Tag)           //创建一个html标签对象

document.getElementByIdx_x_x(ID)           //获得指定ID值的对象

document.getElementsByName(Name)      //获得指定Name值的对象

document.body.a(oTag)

body:子对象

document.body                   //指定文档主体的开始和结束等价于<body></body>

document.body.bgColor           //设置或获取对象后面的背景颜色

document.body.link              //未点击过的链接颜色

document.body.alink             //激活链接(焦点在此链接上)的颜色

document.body.vlink             //已点击过的链接颜色

document.body.text              //文本色

document.body.innerText         //设置<body>...</body>之间的文本

document.body.innerHTML         //设置<body>...</body>之间的HTML代码

document.body.topMargin         //页面上边距

document.body.leftMargin        //页面左边距

document.body.rightMargin       //页面右边距

document.body.bottomMargin      //页面下边距

document.body.background        //背景图片

document.body.a(oTag) //动态生成一个HTML对象

location:子对象

document.location.hash          // #号后的部分

document.location.host          // 域名+端口号

document.location.hostname      // 域名

document.location.href          // 完整URL

document.location.pathname      // 目录部分

document.location.port          // 端口号

document.location.protocol      // 网络协议(http:)

document.location.search        // ?号后的部分

常用对象事件:

documeny.location.reload()          //刷新网页

document.location.reload(URL)       //打开新的网页

document.location.assign(URL)       //打开新的网页

document.location.replace(URL)      //打开新的网页

selection-选区子对象

document.selection

iOS中使用UIWebView与JS进行交互的更多相关文章

  1. UIWebView与JS的交互

    IOS-的UIWebView UIWebVew是ios开发中较为常用的一个控件.其可以打开网页,加载html,打开文档等.当我们在开发中需要用到一些显示页面时,UIWebView是一个很好的选择. 创 ...

  2. UIWebview与js交互[转]

    UIWebView是iOS最常用的SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将javascript嵌入页面中,通过这个方法我们可以在iOS ...

  3. iOS开发之Objective-C与JavaScript的交互(转载)

    UIWebView是iOS最常用的SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将javascript嵌入页面中,通过这个方法我们可以在iOS ...

  4. iOS开发之Objective-C与JavaScript的交互

    UIWebView是iOS最常用的SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将javascript嵌入页面中,通过这个方法我们可以在iOS ...

  5. UIWebView与JavaScript的交互

    UIWebView是iOS最常用的SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将javascript嵌入页面中,通过这个方法我们可以在iOS ...

  6. 【Swift】WKWebView与JS的交互使用

    一.前言 近日,有朋友问我关于WKWebView与JS的交互问题,可我之前一直使用的是UIWebView,也不曾做过WKWebView的交互啊!接下来大家一块学习下WKWebView是怎么实现原生代码 ...

  7. iOS中UIWebView使用JS交互 - 机智的新手

    iOS中偶尔也会用到webview来显示一些内容,比如新闻,或者一段介绍.但是用的不多,现在来教大家怎么使用js跟webview进行交互. 这里就拿点击图片获取图片路径为例: 1.测试页面html & ...

  8. iOS中UIWebView使用JS交互

    iOS中偶尔也会用到webview来显示一些内容,比如新闻,或者一段介绍.但是用的不多,现在来教大家怎么使用js跟webview进行交互. 这里就拿点击图片获取图片路径为例: 1.测试页面html & ...

  9. iOS中JS 与OC的交互(JavaScriptCore.framework)

    iOS中实现js与oc的交互,目前网上也有不少流行的开源解决方案: 如:react native 当然一些轻量级的任务使用系统提供的UIWebView 以及JavaScriptCore.framewo ...

随机推荐

  1. scheme和common lisp 区别

    Scheme and Common Lisp use different names for some of the basic system functions. Many Lisp program ...

  2. IAR FOR ARM 各版本,需要的大家可以收藏了

    原创,原帖地址是在阿莫论坛:http://www.amobbs.com/thread-5400051-1-1.html,这里也在博客贴上来供大家参考. 用过Keil和IAR,个人感觉是IAR还是很不错 ...

  3. 【POJ】3283 Card Hands

    字典树. #include <iostream> #include <cstdio> #include <cstring> #include <string& ...

  4. Linux系统下用户行为审计

    以下内容在RHEL 6.4下测试通过. 1.编写脚本Command_history.sh,生产历史命令记录文件,内容如下 #!/bin/bash [ -d /usr/lib/.cmdlog ] || ...

  5. Final对象

    常量指不能改变的量. 在Java中用final标志,声明方式和变量类似: final double PI = 3.1415927; 虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量. ...

  6. bzoj 3158 千钧一发(最小割)

    3158: 千钧一发 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 767  Solved: 290[Submit][Status][Discuss] ...

  7. 金牌分析师助力 鲁泰A图谋再造一个“鲁泰”?_财经_中国网

    金牌分析师助力 鲁泰A图谋再造一个"鲁泰"?_财经_中国网 金牌分析师助力 鲁泰A图谋再造一个"鲁泰"?

  8. Y2错题解析

    数据流程图描述信息的来龙去脉和实际流程,反映信息在系统中流动.处理和存储的情况.程序结构图用来描述程序结构,一般由构成系统的要素和表达要素间关系的连线或箭头构成.因果图是一种发现问题"根本原 ...

  9. Linux散列表(二)——宏

    散列表宏承接了双向链表宏的风范,好使好用!务必区分“结点”和“元素”!双链表宏博文中已经提及,这里不赘述! 1.获取元素(结构体)基址 #define hlist_entry(ptr, type, m ...

  10. windows7实用快捷键 分类: windows常用小技巧 2014-04-18 14:34 169人阅读 评论(0) 收藏

    几个比较实用的快捷键 windows键:简写成win win+   方向键上下,可以使当前窗体放大或缩小 win+   方向键左右,可以使当前窗体悬靠在左边或右边 win+Home   仅保留当前窗体 ...