ios传值给js_iOS开发中JS给OC传参/传值/

本文详细介绍了在iOS应用中,如何使用JSContext从JavaScript获取值,包括字符串、数组、字典等各种类型的数据。通过evaluateScript方法执行JS函数,并用JSValue来接收返回值。
摘要由CSDN通过智能技术生成

本篇只讲JS给OC传值

前端 JS这么写

var testFunc = function test1 ( ) {

var value = 'test';

return value;

}

OC这样接收

JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

// 1. 执行 js方法

JSValue *square = [context evaluateScript:@"testFunc()"];

// 2. 接收值

JSValue *value = context[@"testFunc"];

NSString *str = value.toString;

如果是数组

JS这么写

var testFunc = function test1 ( ) {

var leixing = 666;

var id = 123;

var arr = new Array(leixing, id);

return arr;

}

OC这么写

JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

// 1. 执行 js方法

JSValue *square = [context evaluateScript:@"testFunc()"];

// 2. 接收值

JSValue *value = context[@"testFunc"];

NSArray *arr = value.toArray;

如果是字典、带下标数组

JS这么写

var testFunc = function test1 ( ) {

var lx = 666;

var id = 123;

var obj = new Object();

arr['lx'] = Leixing1;

arr['id'] = oppid;

return obj;

}

OC这么写

JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

// 1. 执行 js方法

JSValue *square = [context evaluateScript:@"testFunc()"];

// 2. 接收值

JSValue *value = context[@"testFunc"];

NSDictionary *dict = value.toDictionary;

当然也可以把js代码写到OC里

NSString *textJS = @"var testFunc = function test1 () { var value = 'test'; return value; }";

[self.webView stringByEvaluatingJavaScriptFromString:textJS];

或者

// 获取上下文

JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

// 编写js代码

NSString *textJS = @"var testFunc = function test1 () { var value = 'test'; return value; }";

// 添加到上下文

[context evaluateScript:textJS];

// 执行js方法 获取返回值

JSValue *square = [context evaluateScript:@"hellFun()"];

// 得到返回值

NSString *str = value.toString;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值