ObjectiveC与JavaScript的交互

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

stringByEvaluatingJavaScriptFromString

使用stringByEvaluatingJavaScriptFromString方法,需要等UIWebView中的页面加载完成之后去调用。我们在界面上拖放一个UIWebView控件。在Load中将google mobile加载到这个控件中,代码如下:

- ( void )viewDidLoad
{
[super viewDidLoad];
webview.backgroundColor = [UIColor clearColor];
webview.scalesPageToFit = YES;
webview. delegate = self;
NSURL * url = [[NSURL alloc] initWithString: @" http://www.google.com.hk/m?gl=CN&hl=zh_CN&source=ihp " ];

NSURLRequest * request = [[NSURLRequest alloc] initWithURL:url];
[webview loadRequest:request];
}

我们在webViewDidFinishLoad方法中就可以通过javascript操作界面元素了。

1、获取当前页面的url。

- ( void )webViewDidFinishLoad:(UIWebView * )webView {
NSString * currentURL = [webView stringByEvaluatingJavaScriptFromString: @" document.location.href " ];
}

2、获取页面title:

- ( void )webViewDidFinishLoad:(UIWebView * )webView {
NSString * currentURL = [webView stringByEvaluatingJavaScriptFromString: @" document.location.href " ];

NSString * title = [webview stringByEvaluatingJavaScriptFromString: @" document.title " ];
}

3、修改界面元素的值。

NSString * js_result = [webView stringByEvaluatingJavaScriptFromString: @"document.getElementsByName('q')[0].value='朱祁林'; " ];

4、表单提交:

NSString * js_result2 = [webView stringByEvaluatingJavaScriptFromString: @" document.forms[0].submit(); "];

这样就实现了在google搜索关键字:“朱祁林”的功能。

5、插入js代码

上面的功能我们可以封装到一个js函数中,将这个函数插入到页面上执行,代码如下:

[webView stringByEvaluatingJavaScriptFromString: @" var script = document.createElement('script'); "
" script.type = 'text/javascript'; "
" script.text = \"function myFunction() { "
" var field = document.getElementsByName('q')[0]; "
" field.value='朱祁林'; "
" document.forms[0].submit(); "
" }\"; "
" document.getElementsByTagName('head')[0].appendChild(script); " ];

[webView stringByEvaluatingJavaScriptFromString: @" myFunction(); " ];

看上面的代码:

a、首先通过js创建一个script的标签,type为'text/javascript'。

b、然后在这个标签中插入一段字符串,这段字符串就是一个函数:myFunction,这个函数实现google自动搜索关键字的功能。

c、然后使用stringByEvaluatingJavaScriptFromString执行myFunction函数。

演示:

第一步打开google mobile网站




    		    ObjectiveC与JavaScript的交互

第二步输入关键字




    		    ObjectiveC与JavaScript的交互
第三步搜素




    		    ObjectiveC与JavaScript的交互

总结:这篇文章主要是讲解了stringByEvaluatingJavaScriptFromString的用法,它的功能非常的强大,用起来非常简单,通过它我们可以很方便的操作uiwebview中的页面元素。

更多相关文章
  •  传统的登录框 在之前的文章 流量劫持危害 详细讲解了 HTTP 的高危性,以至于重要的操作都使用 HTTPS 协议,来保障流量在途中的安全. 这是最经典的登录模式.尽管主页面并没有开启 HTTPS,但登录时会跳转到一个安全页面来进行,所以整个过程仍是比较安全的 —— 至少在登录页面是安全的. 对于 ...
  •   1. 数据抽象:物理抽象.概念抽象.视图级抽象,内模式.模式.外模式 2. SQL语言包括数据定义.数据操纵(Data Manipulation),数据控制(Data Control) 数据定义:Create Table,Alter Table,Drop Table, Craete/Drop I ...
  • 一.下载centos 7 livecd iso 访问镜像网站,http://mirrors.aliyun.com/centos/7.0.1406/isos/x86_64/ 或者直接下载:http://mirrors.aliyun.com/centos/7.0.1406/isos/x86_64/Cen ...
  • 据媒体报道,美国国防部计算机系统某年度遭到黑客袭击的次数总和达21124次,平均每次抵御攻击耗资150万美元.为对付黑客,美国国防部每年要付出300多亿美元的代价,比当年制造原子弹的曼哈顿工程花费还要多. 对此,负责筹办国防部官网的相关人士称:"不法分子中,有些是军事爱好者,有些是别有用心 ...
  • 斯宾塞·金博尔(Spencer Kimball)在离开谷歌之后,突然觉得不便,因为手头缺少了很多曾在公司内部使用的定制软件.于是,他携手其他谷歌离职者,决心打造自己的版本.现在,他们决心公开自己的工作成果,帮助有志者创办下一个谷歌或Facebook. 金博尔特别想打造属于自己的谷歌数据库系统Span ...
  • 易网科技讯 5月20日早间消息,易网(Nasdaq:NTES)今天公布了截至2010年3月31日的第一季度财务业绩报告.数据显示,易网一季度总营收达12亿元人民币(1.75亿美元),同比增长54.16%.其中游戏业务营收11亿元(1.59亿美元),同比增长50.06%:门户广告营收9150万元(13 ...
一周排行
  • 1,查看内核版本命令: cat   /proc/version uname   -a uname   -rcat   /etc/issue man   uname 2,查看linux版本:抄录如下: 1) 登录到服务 ...
  • 我们都知道,虽然我们可以通过原型和继承来使javascript面向对象.但是,当js代码和逻辑过多时,代码的维护和扩展会变的很不方便.这时,nodejs做的非常好,但是在浏览器端模块化的js编程一直都是个难题.而re ...
  • 案例一:强力查"*"工具 打开软件后,将"X"图标,直接拖曳到需要查看密码的窗口中就可以了 下载地址: http://work.newhua.com/cfan/200622/x ...
  • 之前以为禁用剪切,,粘贴得整一大堆js,结果今天一查,发现竟然是组件的一个属性,- -! 剪切:oncut :oncopy 粘贴:onpaste 这三样属性主要针对的是文本组件,比如<input type=&q ...
  • 金秋十月,通信布线领域的领导企业美国西蒙公司宣布了一个重大的人事任命.原亚太区总经理冯雨舟先生荣升为美国西蒙公司全球销售副总裁,全权负责美国西蒙公司在全球的销售业务.一位杰出的华人领袖凭借其卓越的领导才能和骄人的业绩 ...
  •   Internet的开放性以及其他方面因素导致了网络环境下的计算机系统存在很多安全问题,这些安全隐患可以归结为以下几个方面.       一是只要有程序,就可能存在漏洞.几乎每天都有新的漏洞被发现和公布,程序设计者 ...
  • 1.客户需求:    各学校条件不一,有的条件好,有网络,而且速度快,有的是2M的ADSL慢网,有的根本没有网络,比如镇的中心校.   2.认证要求:   不管用啥版本安装,都一定要认证.   3.设计思路:   使 ...
  • 1.前言 用模式识别做stock预判是不错的注意,说干就干.根据最近的研究,考虑涨停板回踩买入法之阴线调整三缩量买入法. 要点如下:属于短期热点题材最重要,短期均线要呈现多头排列最重要,三次缩量过程要呈现量能(成交量 ...