lam2015
lam2015
  • 发布:2022-06-09 12:57
  • 更新:2023-06-21 08:59
  • 阅读:752

UniJSCallback的invoke方法参数的长度有限制怎么解决

分类:uni-app

@UniJSMethod(uiThread = true)
public void getPicture(String picture , UniJSCallback callback){
Bitmap photo = EidSDK.parseCardPhoto(picture);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
//把bitmap100%高质量压缩 到 output对象里
photo.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
String s = Base64.encodeToString(outputStream.toByteArray(), Base64.DEFAULT);
JSONObject jsonObject = new JSONObject();
jsonObject.put("picture" , s);
callback.invoke(jsonObject);
}

callback.invoke(jsonObject);次方法中jsonObject数据长度有限制,返回给前端页面的数据会被截断

2022-06-09 12:57 负责人:无 分享
已邀请:
it_dyh

it_dyh

您好,请问一下怎么解决

LAO_WUUAN

LAO_WUUAN

UniJSCallback的invoke方法有参数长度限制是因为Android平台的JSBridge对于参数长度有一定的限制。为了解决这个问题,可以考虑把需要传递的参数整合成一个单一的对象,然后以对象的形式传递给invoke方法。例如,以下是一个整合参数的示例代码:  

var params = {
name: '张三',
age: 20,
gender: '男',
...
};
UniJSCallback.invoke('funcName', JSON.stringify(params), function() {...});


注意,在此示例中,使用了JSON.stringify()方法将参数对象转换成字符串,以便在传递时能够正确地解析。同时,在回调函数中需要使用JSON.parse()方法将字符串还原成对象再进行处理。此外,需要根据实际情况选择合适的参数长度。
it_dyh

it_dyh

好的,谢谢,我试试

要回复问题请先登录注册