Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用J2V8将ByteArray作为参数传递给函数_Javascript_Kotlin_J2v8 - Fatal编程技术网

Javascript 如何使用J2V8将ByteArray作为参数传递给函数

Javascript 如何使用J2V8将ByteArray作为参数传递给函数,javascript,kotlin,j2v8,Javascript,Kotlin,J2v8,我试图使用Android上的J2V8库调用javascript函数并向其传递参数。下面的代码是我所拥有的,但是我不知道如何将bytesByteArray传递给被调用的函数 private fun decodePbfBytes(bytes: ByteArray?){ val params = arrayOf(bytes) val v8 = V8.createV8Runtime() var v8Array = V8Array(v8) //how do I add bytes

我试图使用Android上的J2V8库调用javascript函数并向其传递参数。下面的代码是我所拥有的,但是我不知道如何将
bytes
ByteArray传递给被调用的函数

private fun decodePbfBytes(bytes: ByteArray?){
    val params = arrayOf(bytes)
    val v8 = V8.createV8Runtime()
    var v8Array = V8Array(v8) //how do I add bytes to this?
    val fileContents = MyApp.sharedInstance.assets.open("pbfIndex.js").bufferedReader().use { it.readText() }
    v8.executeScript(fileContents)
    val result = v8.executeStringFunction("", v8Array)
}
试试这个:

var buffer = V8ArrayBuffer(bytes, bytes.size)
var v8Array = V8TypedArray(v8, bytes, V8Value.BYTE, 0, 2)
V8Array(v8).add("v8Array", v8Array)

试试这个:

var buffer = V8ArrayBuffer(bytes, bytes.size)
var v8Array = V8TypedArray(v8, bytes, V8Value.BYTE, 0, 2)
V8Array(v8).add("v8Array", v8Array)


作为一个临时解决方案,虽然非常简单,但我将字节数组转换为一个逗号分隔的数字字符串,然后在js中将它们分隔为一个字节数组。对于粗粒度,传递的数据大小增加了数倍。但是现在它可以工作了,我可以继续做其他的事情。

作为一个临时解决方案,虽然非常简单,但我将字节数组转换为一个逗号分隔的数字字符串,然后在js中将它们分隔成一个字节数组。对于粗粒度,传递的数据大小增加了数倍。但是现在它可以工作了,我可以继续做其他事情。

没有为
V8ArrayBuffer
使用字节的构造函数。另外,您正在将v8Array添加到v8Array。没有为
V8ArrayBuffer
使用字节的构造函数。另外,您正在将v8Array添加到v8Array。