J2V8 for Android,上下文方法



我正在使用适用于Android的J2V8端口(https://github.com/eclipsesource/J2V8(。

是否可以启用上下文方法(setInterval,setTimeout,..(?

V8 runtime = V8.createV8Runtime("global");
runtime.executeIntegerScript("setInterval(function() { 
console.log("Hello"); }, 1000)");

它失败并显示错误:"引用错误:未定义设置间隔"。

或者引擎只能执行纯JavaScript?

V8 引擎只能执行纯 JavaScript。但是你模仿一样,通过在引擎中注册 setTimeout 方法,当你收到对这个函数的调用时,你可以调度。喜欢下面。但是你必须使用 Executors.newSingleThreadScheduledExecutor((

private var setTimeOutCallback: JavaCallback = JavaCallback { _, v8Array ->
val v8Function = v8Array.getObject(0) as V8Function
val time = v8Array.getInteger(1).toLong()
val taskId = Random.nextInt(1000, 9999)
val task = v8Executor.schedule({
v8Function.call(runtime, null)
}, time, TimeUnit.MILLISECONDS)
taskId
}

最新更新