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. html中混入的特殊字符

    从设计那里拿来的psd中常常会有全角的单双引号. 如果只是拷贝这些字符到做好的html里面,顶多看到乱码再加以改正. 但是,如果是通篇的doc,需要加上各种html语义标签,在拷贝来的doc文字之间加 ...

  2. JSP页面的异常处理<转>

     对于jsp页面错误处理这里大致有两种方式:一.在Web.xml中配置全局的错误异常处理    即凡是该项目下(即虚拟路径下的所有文件)的任意一个文件错误或者异常,都会跳到指定的错误处理页面.    ...

  3. Delphi重载,覆盖,多态

    一.override 重载 type TFigure = class procedure Draw; virtual;//(我的理解是)父类中可以使用父类的,子类中使用子类的.与“四”是有区别的. e ...

  4. 我的VSTO之路(四):深入介绍Word开发

    原文:我的VSTO之路(四):深入介绍Word开发 在上一篇文章中,我介绍了Word的对象模型和一些基本开发技巧.为了更好的介绍Word插件开发,我为本文制作了一个Word书签的增强版,具体功能是让用 ...

  5. Netty4.0学习笔记系列之二:Handler的执行顺序(转)

    http://blog.csdn.net/u013252773/article/details/21195593 Handler在netty中,无疑占据着非常重要的地位.Handler与Servlet ...

  6. c++ explicit

    C++ explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢? 如果c++类 ...

  7. Linux企业级开发技术(4)——epoll企业级开发之epoll例程

    为了使大家更加深入了解epoll模型在企业应用中的使用,下面给出一段基于epoll的服务器代码,并在代码中添加了详细注释: #include <deque> #include <ma ...

  8. HDU 3829 Cat VS Dog(最大独立集)

    题目大意: 有n只猫,有m只狗.现在有P个学生去参观动物园.每个孩子有喜欢的动物和不喜欢的动物.假如他喜欢猫那么他就一定不喜欢狗(反之亦然). 如果一个孩子喜欢一个动物,那么这个动物不会被移除,若是不 ...

  9. 【线段树】BAPC2014 E Excellent Engineers (Codeforces GYM 100526)

    题目链接: http://codeforces.com/gym/100526 http://acm.hunnu.edu.cn/online/?action=problem&type=show& ...

  10. 【枚举】Vijos P1012 清帝之惑之雍正

    题目链接: https://vijos.org/p/1012 题目大意: 给n个坐标(n<=100 000),求直线距离最短是多少.数据较大用long long 或 double 题目思路: [ ...