首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从本地ios代码调用javascript函数(在参数中)

从本地ios代码调用javascript函数(在参数中)
EN

Stack Overflow用户
提问于 2017-07-05 21:28:57
回答 1查看 50关注 0票数 1

我有这样的javascript函数。

代码语言:javascript
复制
function getState(){
   return "Hello";
}

var cryptico = (function() {

var my = {};

    my.generateRSAKey = function(passphrase, bitlength)
    {
        Math.seedrandom(sha256.hex(passphrase));
        var rsa = new RSAKey();
        rsa.generate(bitlength, "03");
        return rsa;
    }

}());

如果函数在外部,我可以很容易地像这样调用。

代码语言:javascript
复制
NSString *jsPath = [[NSBundle mainBundle] pathForResource:@"cryptico" ofType:@"js"];

NSString *scriptString = [NSString stringWithContentsOfFile:jsPath encoding:NSUTF8StringEncoding error:nil];

JSContext *context = [[JSContext alloc] init];
context = [[JSContext alloc] init];
[context evaluateScript:scriptString];

JSValue *test10 = context[@"getState"];
JSValue *test11 = [test10 callWithArguments:@[]]; //will be Hello

但是我怎么才能调用变量内部的东西呢?我试过很多不同的方法,但都不行。

EN

回答 1

Stack Overflow用户

发布于 2017-07-05 22:02:29

根据苹果公司的JSValue文档:

Objective-C块(Swift clousre)和javascript函数应该使用以下命令相互转换

代码语言:javascript
复制
valueWithObject:inContext:

转换为JSValue,就像您在代码中所做的那样,并且

代码语言:javascript
复制
toObject

转换为其实际类型,在本例中为块。所以先试一试

代码语言:javascript
复制
[test10 toObject];

并存储到一个块中,然后正常调用该块

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44927668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档