iOS 利用UIWebView与JavaScript交互的最简单办法(本人已验证可行)

本贴转自:http://blog.csdn.net/h_o_w_e/article/details/28887005

1, UIWebView调用 JavaScript 的函数:

NSString* strValue = [webView stringByEvaluatingJavaScriptFromString:@"YourFunctionName(‘YourParameter‘)"];

上面这句就是调用 JavaScript里面自定义的函数 YourFunctionName(传入参数‘YourParameter‘,取得返回值赋给strValue )

2,JavaScript (通过UIWebView)调用ObjC方法:

下面说到的是最简单、最通用的办法!!脚本写完之后可以丢到Android执行的:

就是利用UIWebView(Android的是WebView)拦截URL的功能!!!约定一个特殊URL,写在脚本,让上层去拦截分析!!比如,

在JavaScript写上:

window.location.href = "ABCD://XXXYYYZZZ"

在iOS里面:

实现UIWebViewDelegate下面这个函数(不要忘记设置 webView.delegate = self 这样细节)

-
(BOOL)webView:(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType

{

NSString* strXXX = request.URL.absoluteString;

//假设只是分析 "ABCD://"

NSRange range = [strXXX rangeOfString:@"ABCD://"];
             if( range.location != NSNotFound )
             {
                    //就在这里执行操作了!!!

return NO;//返回NO,表示取消对本次请求的导航

}

return YES;

}

//Android里面,利用WebView 重载这个函数也可以做到同样效果

public boolean shouldOverrideUrlLoading(WebView  view, String url) {

return true;
}

这样,当JavaScript执行window.location.href = "ABCD://XXXYYYZZZ"这句,就触发上层的对应操作了!

也就是实现JavaScript调用上层ObjC函数的功能了

时间: 2024-08-11 09:45:04

iOS 利用UIWebView与JavaScript交互的最简单办法(本人已验证可行)的相关文章

iOS 利用UIWebView与JavaScript交互的最简单办法

这里说的是针对iOS的!并且方法很简单!!并且验证可行的!!! 1, UIWebView调用 JavaScript 的函数: NSString* strValue = [webView stringByEvaluatingJavaScriptFromString:@"YourFunctionName('YourParameter')"]; 上面这句就是调用 JavaScript里面自定义的函数 YourFunctionName(传入参数'YourParameter',取得返回值赋给st

IOS中UIWebView和JavaScript交互(转自http://blog.2jun.net/2012/11/02/webviewandjs/)

IOS中UIWebView和JavaScript交互 当程序中使用到UIWebView控件的时候,难免会遇到需要与页面进行交互的情况.这种情况在android平台下比较容易处理,android平台下WebView控件的addJavascriptInterface()方法可以很轻松的完成交互,而IOS上就稍复杂一些. 页面与客户端的交互是通过JS来完成的,通常情况下与JS的交互可以分为两种:客户端传递给JS一些数据和JS向客户端请求一些本地操作.下面分别对这两种情况进行处理. JS向客户端请求本地

IOS UIWebView与JavaScript交互实现Web App

上一篇文章讲到了Android WebView与JavaScript的交互问题,现在来讲一下IOS的UIWebView与JavaScript的交互问题.和Android的相比,IOS的会略显笨拙一些不大友好,然而也算是在未引用第三方框架的基础上完成了交互的问题.OK,现在开始吧. 1.首先在IOSA->Application下选择Single View Application创建一个IOS应用,命名为JSInteraction,然后我删去了Info.plist文件里Main storyboard

ios的UIWebView与js交互的有关知识

一.UIWebView与JavaScript的交互 源地址:http://blog.sina.com.cn/s/blog_74e9d98d010199jc.html 总体概述:       实质上oc与js的通信交互就是发送消息,也即函数调用,只要在交互的过程正确的指定好对方需要调用的函数和参数就ok oc-->js  stringByEvaluatingJavaScriptFromString,其参数是一NSString 字符串内容是js代码(这又可以是一个js函数.一句js代码或他们的组合)

UIWebView与javascript交互三通过OC页面来改变html页面上的值

有一件事要说一下哦, <UIWebView与javascript交互一>这篇博客被几个网站给转载了,很开心,但是开心之余有一点觉得要说一下,大家转载别人的文章的时候记得说明一下转载的出处,有两方面的原因,第一就是尊重作者的劳动成果,另一方面,由于博客里有的时候有一些demo,但是转载的人并没有把demo的下载地址给贴出来,给看到博客的同学带来了很大的不便. 接上篇,我们已经实现了通过html按钮来传数据到oc页面,但是没有实现通过oc页面传数据到js页面,并修改html的页面,谈不上真正完全的

Xcode6 UIWebView与JavaScript交互(issue fix)

这篇文章中,有介绍UIWebView与JavaScript交互,在UIWebView截获JavaScript请求处理,从app的角度,这是JavaScript的Hook请求. 在Xcode6之前的App版本,JavaScript可以这样将Hook请求发送出来: HTML: <li><a href="testapp://function=test&callbackJS=testCallback">test link</a></li>

UIWebView与javascript交互一

去年看了两本书上面都有提到UIWebView与javascript的交互,但是很少提交具体的操作.今年时间稍微闲下来,我觉得很有必要把这个知识点整理一下. 首先一定要储备一些简单的javascript知识,我看的是这本电子书<javascript从入门到精通>另外还要有一些简单的html知识的基础. 我主要实现的功能就是加载html文件,并操作html上的输入框,按钮进行操作. test.html的代码如下: <html> <head> <title>tes

iOS中UIWebView使用JS交互

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

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

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