h***@163.com
h***@163.com
  • 发布:2021-04-22 14:27
  • 更新:2022-05-18 15:36
  • 阅读:590

webview里使用android.util.Base64.decode接收的bytes为null

分类:HBuilderX

代码示例

                            var base64Str = "这是一串很长很长的base64串"  

                            var Base64 = plus.android.importClass("android.util.Base64");  

                            var bytes = Base64.decode(base64Str.slice(0, 100000), 0);  
                            console.log(bytes); //打印出来为null  

                            // 但是这样又没问题  
                            var bytes = Base64.decode(base64Str.slice(0, 100), 0);  
                            console.log(bytes); //打印出来有数据

然后我怀疑是base64过长导至的问题,然后我就搜到了这个:

https://ask.dcloud.net.cn/question/93515

和这个:

https://ask.dcloud.net.cn/question/93515

基本上可以认为是base64长度的问题,然后我就看到了@DCloud_Android_zl 的建议:

Android系统webview数据传输时会有长度限制,如果需要传输超长数据,可以集成X5内核解决,
https://ask.dcloud.net.cn/article/36806

于是我就集成了X5的内核,并非使用
plus.navigator.getUserAgent()
判断X5内核已经启用,内容如下:

Mozilla/5.0 (Linux; Android 10; Redmi Note 7 Build/QKQ1.190910.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045534 Mobile Safari/537.36 uni-app Html5Plus/1.0

但是还是没用,还是没用,还是没用,还是没用,还是没用,还是没用

2021-04-22 14:27 负责人:无 分享
已邀请:
9***@qq.com

9***@qq.com

同样问题,最后怎么解决的?

该问题目前已经被锁定, 无法添加新回复