gpt4 book ai didi

javascript - 如何在 Android 中使用 Duktape 访问 Javascript 模块

转载 作者:IT老高 更新时间:2023-10-28 13:35:26 27 4
gpt4 key购买 nike

我正在使用 Kotlin 在我的 Android 应用程序中使用 Duktape 成功解析和评估 javascript 文件。

val file_name = "lib.js"

val js_string = application.assets.open(file_name).bufferedReader().use {
it.readText()
}


val duktape = Duktape.create()

try {
Log.d("Greeting", duktape.evaluate("'hello world'.toUpperCase();").toString())
duktape.evaluate(js_string)

} finally {
duktape.close()
}

javascript 文件是使用 Browserify 创建的,因此它是一个包含所有内容的单个文件,并且工作正常。但是我需要从模块中请求一个模块和一个方法,例如:

var test = require('testjs-lib');
test.EVPair.makeRandom().toWTF();

我不知道怎么做,也没有找到任何例子,除了这个链接:http://wiki.duktape.org/HowtoModules.html

它告诉我使用 modsearch,但我不知道该怎么做,也不知道它应该放在哪里,即使它适用于 Duktape Android (https://github.com/square/duktape-android)。

有没有人成功完成这件事,可以阐明这个问题?

最佳答案

在 testjs-lib.js 中,添加使用 testjs-lib.js 本身导出的模块的 JS 代码。例如:

function myModule() {
this.hello = function() {
return 'hello!';
}

this.goodbye = function() {
return 'goodbye!';
}
}

module.exports = myModule;

//You code goes here
console.log(myModule.hello());
console.log(myModule.goodbye());

然后让 Duktape 评估整个文件。

关于javascript - 如何在 Android 中使用 Duktape 访问 Javascript 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49851354/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com