- 浏览: 44234 次
文章分类
- 全部博客 (35)
- java (35)
- zk安装 (1)
- 从零开始认识 JasperReport + IReport (JasperReport部分) (1)
- Javadoc查看、搜索、比较利器——GroovyHelp 3.1.5 GA发布 (1)
- 设计模式-Simple Factory 模式 (1)
- biaodashi (1)
- 格局定乾坤 (1)
- 一个spatialReference引发的血案 (1)
- 创造亿万富翁的神奇公式 (1)
- 打印机 (2)
- js 调用flex 方法 (1)
- tomcat部署 (1)
- 2010 -> 2011 (1)
- Android颜色选择器 (1)
- 《软件开发的边界-管理成功的项目》 (1)
- 毕业了 (1)
- MapXtreme2004开发的Web程序的部署 (1)
- 一个比较有用的XML文件操作类 C#代码 可以继续扩展 (1)
- J2EE中 实体BEAN和会话BEAN的区别 (1)
- iOS开发之Objective-C与JavaScript的交互 (1)
- iOS开发之多媒体播放 (1)
- 单链表逆序 (1)
- ORA-01114错误原因及解决方法(临时表空间坏掉、或者满了) (1)
- hibernate使用sql查询text类型的字段出错 (1)
- 腾讯微博java(android) sdk 标签相关api详细介绍 (1)
- Android开发之数据保存技术(一) (1)
- 瞎混了好久,今天开博 (1)
- MySQL安装详解(V5.5 For Windows) (1)
- Execution in the Kingdom of Nouns (1)
- EJB 2.0 VS EJB3.0 (1)
- 一个简单的Unix脚本(文件拷贝打包) (1)
- php session_cache_limiter详解 (1)
- llvm-clang (1)
- jdbc学习笔记-----jdbc性能优化 (1)
- java教程:解析java的多线程机制(二) (1)
最新评论
iOS开发之Objective-C与JavaScript的交互
UIWebView是iOS最常用的SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将javascript嵌入页面中,通过这个方法我们可以在iOS中与UIWebView中的网页元素交互。
stringByEvaluatingJavaScriptFromString
使用stringByEvaluatingJavaScriptFromString方法,需要等UIWebView中的页面加载完成之后去调用。我们在界面上拖放一个UIWebView控件。在Load中将google mobile加载到这个控件中,代码如下:
- (void)viewDidLoad<br>
{<br>
[super viewDidLoad];<br>
webview.backgroundColor = [UIColor clearColor]; <br>
webview.scalesPageToFit =YES;<br>
webview.delegate =self;<br>
NSURL *url =[[NSURL alloc] initWithString:@"http://www.google.com.hk/m?gl=CN&hl=zh_CN&source=ihp"];<br><br>
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];<br>
[webview loadRequest:request]; <br>
}
<br>
我们在webViewDidFinishLoad方法中就可以通过javascript操作界面元素了。
1、获取当前页面的url。
<textarea readonly name="code" class="plain">- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];</textarea><br>
2、获取页面title:
<textarea readonly name="code" class="plain"> NSString *title = [webview stringByEvaluatingJavaScriptFromString:@"document.title"]; </textarea><br>
3、修改界面元素的值。
<textarea readonly name="code" class="plain"> NSString *js_result = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('q')[0].value='朱祁林';"];</textarea><br>
4、表单提交:
<textarea readonly name="code" class="plain"> NSString *js_result2 = [webView stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit(); "];</textarea><br>
这样就实现了在google搜索关键字:“朱祁林”的功能。
5、插入js代码
上面的功能我们可以封装到一个js函数中,将这个函数插入到页面上执行,代码如下:
<textarea readonly name="code" class="plain"> if ([title compare: @"Google"]==NSOrderedSame ) {
[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();"];
}</textarea><br>
看上面的代码:
a、首先通过js创建一个script的标签,type为'text/javascript'。
b、然后在这个标签中插入一段字符串,这段字符串就是一个函数:<span style="font-family: Courier New;">myFunction</span>,这个函数实现google自动搜索关键字的功能。
c、然后使用<span style="font-family: Courier New;">stringByEvaluatingJavaScriptFromString执行myFunction函数。</span>
<span style="font-family: Courier New;">演示:</span>
<span style="font-family: Courier New;">第一步打开google mobile网站</span>
<span style="font-family: Courier New;"><img alt="" src="http://hi.csdn.net/attachment/201108/4/0_13124170981Cg7.gif"></span>
<span style="font-family: Courier New;">第二步输入关键字</span>
<span style="font-family: Courier New;"><img alt="" src="http://hi.csdn.net/attachment/201108/4/0_13124171126OOZ.gif"></span>
<span style="font-family: Courier New;">第三步搜素</span>
<span style="font-family: Courier New;"><img alt="" src="http://hi.csdn.net/attachment/201108/4/0_1312417131AsZE.gif"></span>
总结:这篇文章主要是讲解了stringByEvaluatingJavaScriptFromString的用法,它的功能非常的强大,用起来非常简单,通过它我们可以很方便的操作uiwebview中的页面元素。
发表评论
-
java教程:解析java的多线程机制(二)
2012-02-08 15:27 1015<div>四、线程间的同步 <div ... -
jdbc学习笔记-----jdbc性能优化
2012-02-08 15:07 1006<div>这里说的是如何正确使用jdbc编 ... -
llvm-clang
2012-02-07 17:14 1079clang ... -
php session_cache_limiter详解
2012-02-07 15:18 2767<span style="backgr ... -
一个简单的Unix脚本(文件拷贝打包)
2012-02-04 17:09 954题目要求: 实现备份脚本,将目录: /sbin ... -
EJB 2.0 VS EJB3.0
2012-02-04 16:39 895SUMMARY: Removal of home in ... -
Execution in the Kingdom of Nouns
2012-02-03 16:39 1891<h3>Execution in the ... -
MySQL安装详解(V5.5 For Windows)
2012-02-01 09:39 820<p>MySQL安装详解(V5.5 For ... -
瞎混了好久,今天开博
2012-01-31 14:13 798<p>作为一名“无证”程序员,自己瞎混了这 ... -
Android开发之数据保存技术(一)
2012-01-11 17:14 7937<h1>Android开发之数据保存技术( ... -
腾讯微博java(android) sdk 标签相关api详细介绍
2012-01-11 13:53 1136<span style="font-f ... -
hibernate使用sql查询text类型的字段出错
2011-12-28 16:28 1463晚上查了一下,做个记录 hibernate默认不支持t ... -
ORA-01114错误原因及解决方法(临时表空间坏掉、或者满了)
2011-12-28 14:23 1802<span style="font-f ... -
单链表逆序
2011-12-21 11:24 1399实现一: #include "stdafx. ... -
iOS开发之多媒体播放
2011-12-19 15:49 1013iOS sdk中提供了很多方便的方法来播放多媒体。本 ... -
J2EE中 实体BEAN和会话BEAN的区别
2011-12-15 10:14 934<span style="" ... -
一个比较有用的XML文件操作类 C#代码 可以继续扩展
2011-12-15 09:49 906CXml</span>{</spa ... -
MapXtreme2004开发的Web程序的部署
2011-12-14 16:39 864</span></font>& ... -
毕业了
2011-12-14 11:39 696今天终于顺利的通过了硕士毕业答辩。<br> ... -
《软件开发的边界-管理成功的项目》
2011-12-13 10:04 760本书是Rational Software的资深项目经理 ...
相关推荐
在iOS应用开发中,JSPatch是一个强大的框架,它允许开发者使用JavaScript来调用和修改Objective-C代码,极大地提高了开发效率和灵活性。JSPatch基于Objective-C的运行时机制(runtime)以及Apple的JavaScriptCore...
UIWebView是苹果提供的一个视图组件,它可以加载和渲染网页,同时提供了与JavaScript交互的能力。在`SimulateHTMLDemo`这个示例项目中,很可能就包含了一个使用UIWebView实现的HTML编辑器示例。 要将HTML编辑器内嵌...
在iOS开发中,JavaScript与Objective-C的交互是一个常见的需求,特别是在构建混合应用或者利用Web技术增强原生应用功能时。本篇文章将详细讲解如何在iOS中实现JavaScript与Objective-C的双向通信,主要涉及Webview的...
在iOS开发中,JavaScript与Objective-C的互操作性是一个重要的技术环节,特别是在混合式应用开发中。这种技术允许开发者利用JavaScript的灵活性和Objective-C的强大功能,实现高效且跨平台的应用程序。本文将深入...
Objective-C与JavaScript在iOS开发中的交互是Web开发与原生应用结合的重要技术,尤其是在使用UIWebView展示网页内容时。本文将深入探讨如何实现Objective-C与JavaScript的双向通信,以实现丰富的功能集成和优化用户...
Objective-C使用运行时系统来解析方法调用,这使得动态性成为可能,也方便了JavaScript与之交互。 C语言是底层的、通用的编程语言,是许多现代编程语言的基础。C语言库通常包含高效且经过优化的函数,可以直接在...
在讨论Visual Studio 2015编译Objective-C之前,首先需要了解Visual Studio是微软公司推出的一款集成开发环境(IDE),主要用来开发Windows平台的应用程序。而Objective-C是一种主要用在苹果公司Mac OS X和iOS操作...
在iOS开发中,为了构建丰富的用户界面,开发者经常会选择混合开发模式,即使用原生的Swift或Objective-C结合HTML、CSS和JavaScript来打造应用。这种模式下,`UIWebView`是苹果提供的一种关键组件,它允许我们在iOS...
Objective-C作为iOS开发中较为传统的编程语言,在与网页的交互中常常需要调用JavaScript代码,同样JavaScript也可能需要调用Objective-C代码。这种相互调用技术在提供更为丰富的用户体验和功能实现方面发挥着重要...
JavaScript与Objective-C互相调用是iOS应用开发中的一个重要技术,特别是在构建混合式应用程序时,它允许我们利用Web技术与原生平台的能力相结合。在Xcode 4.6.3这样的开发环境中,我们可以利用UIWebView来实现这种...
Objective-C是Apple的首选语言,用于开发macOS和iOS的应用程序。它的语法基于C语言,并添加了Smalltalk式的消息传递机制,使得对象间的交互更加直观。在VLC这样的多媒体应用中,Objective-C可能会用于构建图形用户...
这项技术的核心是通过Bridge,将JavaScript与Objective-C的世界连接起来,实现了动态更新功能,提高了开发效率并降低了维护成本。 **一、JSPatch的工作原理** JSPatch基于Google的V8 JavaScript引擎,它将...
在iOS应用开发中,JavaScript(JS)与Objective-C(OC)的交互是一个常见的需求,特别是在混合式开发或者WebView中。本教程将详细讲解如何在iOS项目中实现JS与OC的通信,以提升用户体验并充分利用两者的优势。 首先...
在iOS开发中,JavaScript(JS)与Objective-C(OC)之间的交互是常见需求,尤其是在混合式应用开发中。本教程将深入探讨如何实现这两种语言之间的通信,以创建更丰富的用户体验和功能。 首先,理解基本概念:...
1. **源代码**:可能包含Node.js的C++扩展或绑定,用于与Objective-C代码交互。这些代码可能包括`.cpp`或`.h`文件,实现了JavaScript调用Objective-C方法的接口。 2. **示例项目**:可能有一个或多个示例项目,展示...
在iOS开发中,JavaScript与Native代码的交互是一个重要...这个"IOS-JsAndNativeDemo"项目很可能是对以上知识点的一个实际应用展示,通过学习和理解该项目,开发者可以掌握在iOS应用中集成JavaScript并与之交互的技能。