我试图通过Promise向react-native中的Javascript传递一个bytearray对象。
- 产品代码:**
RawRequest request = new RawRequest(Request.Method.GET, path, new
ResponseListener<byte[]>() {
@Override
public void onResponse(byte[] bytes) {
//Let's pass the response in the form of bytes
promise.resolve(bytes);
Log.d(TAG,"The response in bytes length is " + bytes.length);
}
}, new ErrorListener() {
@Override
public void onError(HttpError httpError) {
}
})
字符串
- 异常:**
致命例外:主要工艺:com. listviewdbproject,PID:5965 java. lang. RuntimeException:无法在com. facebook. react. bridge. Arguments. fromJavaArgs转换类型class [B]的参数(Arguments.java:57)at com. facebook. react. bridge. CallbackImpl. invoke(CallbackImpl.java:29)在com. facebook. react. bridge. PromiseImpl. resolve(PromiseImpl.java:32)at com.example.creosdk.HttpModule$1.onResponse(HttpModule.java:80)at com.example.creosdk.HttpModule$1.onResponse(HttpModule.java:76),网址:com. creo. fuel. uttp. http. toolbox. RawRequest. deliverResponse(RawRequest.java:46)在com. creo. fuel. uttp. http. toolbox. RawRequest. deliverResponse(RawRequest.java:16)在com. creo. fuel. uttp. http. delivery. ExecutorDelivery $www.example.com(Execut ResponseDeliveryRunnable.run
3条答案
按热度按时间sc4hvdpw1#
你不能直接解析Array和ArrayList数据结构。React Native专门提供了
WritableNativeArray
来完成这一点。据我所知,它还没有在任何地方被文档化,但你可以找到它here。下面的代码对我来说是有效的,你可以扩展它以满足你的需求:字符串
在JS方面:
型
6g8kf2rb2#
这已经晚了很多年,但我也遇到了类似的问题。我的解决方案是在React-Native中创建一个字符串数组,其中包含字节值;即[“52”,“0”],并在原生部分中将其转换回字节数组。
我最初尝试使用字符串,但React-Native to Java桥从字符串中删除了尾随的null代码。
hmae6n7t3#
我也有同样的要求,最后把ByteArray转换成了base64字符串。在Kotlin中:
字符串
你可以通过桥将这个字符串发送到你的JavaScript,就像你发送任何其他字符串一样,并将其转换为JS Buffer:
型