java与IOS的交互

iOS开发之UIWebView与JavaScript的交互

分类: ios开发 2012-07-26 17:07 2878人阅读 评论(2) 收藏 举报

javascriptiosgooglemobileurlfunction

iOS开发之Objective-C与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网站

第二步输入关键字


第三步搜素

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

时间: 2024-11-19 10:00:13

java与IOS的交互的相关文章

iOS JS 交互之利用系统JSContext实现 JS调用oc方法

ios js 交互分为两块: 1.oc调用js 这一块实现起来比较简单, 我的项目中加载的是本地的html,js,css,需要注意的是当你向工程中拖入这些文件时,选择如下操作,(拖入的文件夹是蓝色的,相对路径),不然css,js 的路径会存在问题 加载本地html: oc调用js:一句代码搞定 2.js 调用oc js调用oc又分为两种: 1.js端是直接调用方法 这里就要说到ios7才推出的一个新的api    JavaScriptCore,首先我们引入这个类,并初始化一个JSContext对

<转>从Java转iOS第一个项目总结

从Java转iOS第一个项目总结 阅读目录 0.前言 1.项目介绍 2.项目使用的第三方开源库 3.工具和插件介绍 4.集成友盟 5.即时通讯 6.项目总结 0.前言 本人14年12月份,从网站开发组转到了移动开发组,自己的java两年半工作经验变成了object-c零经验.2015年1月份新启动了一个移动项目,年后因为人事变动,自己从辅助开发变成了"核心"开发,目前项目基本接近尾声,下面进行总结,希望对一些人能有帮助, 另外也希望ios大牛进行指导 回到顶部 1.项目介绍 项目属于一

(iOS)Base64加密和DES加密、以及JAVA和iOS中DES加密统一性问题

我们在项目中为了安全方面的考虑,通常情况下会选择一种加密方式对需要安全性的文本进行加密,而Base64加密和DES64加密是常用的加密算法.我记得我在前一个项目中使用的就是这两种加密算法的结合:Base64 + DES加密.当然这需要移动端和后台服务器做一个统一. 1.Base64加解密 值得一提的是:apple提供了基础的Base64加解密算法.这样我们就可以直接使用方法去实现Base64加解密.先看一下apple都提供了哪些方法: @interface NSData (NSDataBase6

Android与H5交互(java与js的交互)

1.Android  java代码 //java代码 package com.wytiger.jsdemo; import android.app.Activity;import android.os.Bundle;import android.content.Context;import android.graphics.Color;import android.view.View;import android.webkit.JavascriptInterface;import android

Unity3D与iOS的交互设计<ViewController 的跳转>

原地址:http://www.aichengxu.com/article/%CF%B5%CD%B3%D3%C5%BB%AF/28797_12.html Unity3D与iOS的交互设计<ViewController 的跳转>,有需要的朋友可以参考下. 这也是第一次做这样的需求,也是公司的需要呀.做出这个真是一言难尽呀... 小弟主要不是搞iOS开发的,一直以来都是开发Android开发,只是昨天被老大叫过去做一下iOS的二维码扫描.有点iOS基础的我,只好到处搜索了.然后,二维码扫描做好了,遇

iOS Native-Web交互学习心得

Web和Native的交互,也就是iOS object-C与Javascript之间的交互:核心代码是 [webView stringByEvaluatingJavaScriptFromString:@"xxxxxxxxxx"]; 这里主要用到的就是iOS WebKit加载网络页面,功能有获取用户位置信息,拍照,判断当前手机网络连接类型的功能(拍照和获取当前用户地理位置需要真机环境下)所以需要导入以下几个框架: 这里需要注意的是iOS8以后获取位置地理信息需要在info.plist文件

安卓中java和js如何交互

1.安卓中java和js如何交互 在Android上怎样实现JAVA和JS交互呢?Android的webview是基于webkit内核的,webview中集成了js与java互调的接口函数,通过addJavas criptInterface方法,可以将Java的类注册进webkit,给网页上的js进行调用,而且还可以通过loadUrl方法是给webkit传递一个URL,供浏览器来进行解析,实现Java和js交互. 要想运行网页上的js脚本,webview必须设置支持Javas cript. 2.

5、jQuery的Ajax与Java通过GET方式交互

1.jQuery.get( url, [data], [callback] ):使用GET方式来进行异步请求 1.1 参数:              url (String) :  发送请求的URL地址.              data (Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示,会做为jQueryString附加到请求URL中.              callback (Function) : (可选) 载入成功时回调函数(只有当Resp

说说Java程序和数据库交互的乱码解决

本文就本人遇到的问题进行讲解 1.通过jdbc直连方式,连接Mysql数据库,从程序向数据库中写入数据出现的乱码解决方案. 当通过程序向Student表中写入一条数据时,写入数据库的内容会产生乱码. 如下图 解决方案: 1.创建数据库的时候: CREATE   DATABASE   `Db`                                CHARACTER   SET   'utf8 '                                COLLATE   'utf8