转:实现OC与JS的简易交互

oc-->js stringByEvaluatingJavaScriptFromString,其参数是一NSString 字符串内容是js代码(这又可以是一个js函数、一句js代码或他们的组合),当js函数有返回值或一句js代码有值返回可通过stringByEvaluatingJavaScriptFromString的返回值获取。

js-->oc 利用webView的重定向原理(即重新在js中指定document.location的值,此为一url),只要在这个url字符串中按自定义的规则指定好所需调用oc中的函数和参数,然后通过OC中的shouldStartLoadWithRequest函数去捕获处理请求。

?


1

2

3

4

5

//APP调用webView加载的JS中的方法interfaceCalledByAPP,此例传入了两个参数

- (void)sendMessage:(id)sender {

    [self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"interfaceCalledByAPP(\"%@\",\"%@\")", @"2",@"333"]];

}

?


1

2

3

4

//JS向APP传值。首先实现UIWebView的代理,然后根据NSURLRequest的URL进行不同处理

//JS中的将要传递的数据作为URL重定向

var tempurl = "将要传递的值";

window.location.href= encodeURI(encodeURI(tempurl));

?


1

2

3

4

5

6

7

8

9

10

11

//webView的代理相应重定向

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

    NSString *requestString = [[[request URL]  absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSLog(@"should-------");

    if ([requestString hasPrefix:@"url://"]) {

        //根据自己定义的规则,通过字符串的值,调用OC的方法。这里就输出一下字符串了。

        NSLog(@"===%@",requestString);

    }

    return YES;

}

时间: 2024-12-22 19:14:52

转:实现OC与JS的简易交互的相关文章

OC和JS之间的交互

目录 对OC和JS之间交互的理解 JS调用OC OC调用JS 对OC和JS之间交互的理解 JS调用OC JS文件 function sendCommand(cmd,param){ var url = "testapp:"+cmd+":"+param; document.location = url; } function testAction(){ sendCommand("alert","nihao!"); } OC文件 需

OC与JS的交互详解

事情的起因还是因为项目需求驱动.折腾了两天,由于之前没有UIWebView与JS交互的经历,并且觉得这次在功能上有一定的创造性,特此留下一点文字,方便日后回顾. 我要实现这样一个需求:按照本地的CSS文件展示一串网络获取的带HTML格式的只有body部分的文本,需要自己拼写完整的HTML.除此之外,还需要禁用获取的HTML文本中自带的 < img > 标签自动加载,并把下载图片的操作放在native端来处理,并通过JS将图片在Cache中的地址返回给UIWebview. 之所以要把图片操作放在

[转]OC与JS的交互详解

http://www.cnblogs.com/wenxp2006/p/4777937.html 事情的起因还是因为项目需求驱动.折腾了两天,由于之前没有UIWebView与JS交互的经历,并且觉得这次在功能上有一定的创造性,特此留下一点文字,方便日后回顾. 我要实现这样一个需求:按照本地的CSS文件展示一串网络获取的带HTML格式的只有body部分的文本,需要自己拼写完整的HTML.除此之外,还需要禁用获取的HTML文本中自带的 < img > 标签自动加载,并把下载图片的操作放在native

实现OC与JS的交互

oc-->js  stringByEvaluatingJavaScriptFromString,其参数是一NSString 字符串内容是js代码(这又可以是一个js函数.一句js代码或他们的组合),当js函数有返回值或一句js代码有值返回可通过stringByEvaluatingJavaScriptFromString的返回值获取. js-->oc 利用webView的重定向原理(即重新在js中指定document.location的值,此为一url),只要在这个url字符串中按自定义的规则指

UIWebView开发中,js与oc,js与swift交互,相互传递参数的方法

实际开发中经常遇到需要向webView传递参数或从webView取参数,在此写了个超简单的demo供大家参考,本人js刚学了一天,所以不足之处海涵. 废话不多说,直接上代码 oc版 1 #import "ViewController.h" 2 @interface ViewController ()<UIWebViewDelegate> 3 @property (nonatomic, strong)UIWebView * webView; 4 @end 5 6 @imple

OC和JS的交互---JavaScriptCore

JavaScriptCore的简单介绍 JavaScriptCore是iOS7提供的原生框架,可以让Objective-C和JavaScript提供简单直接的交互. JavaScriptCore的使用 导入JavaScriptCore.framework 在需要使用的类中引入头文件 #import <JavaScriptCore/JavaScriptCore.h> 点开头文件,我们可以看到 #import "JSContext.h" #import "JSValu

WebViewJavascriptBridge源码探究--看OC和JS交互过程

今天把实现OC代码和JS代码交互的第三方库WebViewJavascriptBridge源码看了下,oc调用js方法我们是知道的,系统提供了stringByEvaluatingJavaScriptFromString函数 .现在主要是了解js是如何调用oc方法的,分享下探究过程. 源码不多,就一个头文件WebViewJavascriptBridge.h和实现文件WebViewJavascriptBridge.m, 和一个js文件,实现在js那边可以调用oc方法,也可以在oc里面调用js方法. 先

OC与JS的交互

关于oc与js的交互,本人用的是原生类 JSExport 实现. 本人不擅长文字描述,故直接上代码 1,首先创建一个继承 NSObject的类,创建代理,实现代理方法,.h文件 1 #import <Foundation/Foundation.h> 2 #import <JavaScriptCore/JavaScriptCore.h> 3 @protocol JSObjcDelegate1 <JSExport> 4 - (void)getUser:(NSString *

iOS开发——网络开发OC篇&amp;OC与JS交互简单案例

OC与JS交互简单案例 网页开发中三个重要的知识,这里就不详细介绍了! Html:页面代码 Css:样式 javascript:响应 先来看一段html的简单代码,里面涉及了上面的三个部分(很简单) 1 <html> 2 <!--描述网页信息--> 3 <head> 4 <meta charset="UTF-8"/> 5 <title>hello world</title> 6 <script> 7 f