4***@qq.com
4***@qq.com
  • 发布:2019-04-12 10:15
  • 更新:2021-04-16 17:52
  • 阅读:2293

App上window.bota函数无效,求一个app上可用的arrayBuffer转base64的代码,十分感谢

分类:uni-app

h5 可以 但是App上不行

    var binary = '';  
//  var bytes = new Uint8Array(arraybuffer);  
//  var len = bytes.byteLength;  
//  for (var i = 0; i < len; i++) {  
//      binary += String.fromCharCode(bytes[i]);  
//  }  
            return window.btoa(binary)
2019-04-12 10:15 负责人:无 分享
已邀请:
卢融霜_

卢融霜_

util.str2ab = (str) => {  
        let val = ""  
        for (let i = 0; i < str.length; i++) {  
          if (val === '') {  
            val = str.charCodeAt(i).toString(16)  
          } else {  
            val += ',' + str.charCodeAt(i).toString(16)  
          }  
        }  
        return new Uint8Array(val.match(/[\da-f]{2}/gi).map(function (h) {  
          return parseInt(h, 16)  
        })).buffer  
}
2***@qq.com

2***@qq.com

可以直接用btoa() atob();不用加window,我刚好碰到过

  • 4***@qq.com (作者)

    app哦 不是h5

    2019-10-29 19:17

8***@qq.com

8***@qq.com

请问解决了吗

5***@qq.com

5***@qq.com

我也在项目中遇到这个问题,大战一天一夜终于找到替代方法,有需要的发邮箱联系(名称即邮箱)。

卢融霜_

卢融霜_

var key = uni.arrayBufferToBase64(util.str2ab(value))
util.str2ab = (str) => {  
    var buf = new ArrayBuffer(str.length * 2);   
    var bufView = new Uint16Array(buf);  
    for (var i = 0, strLen = str.length; i < strLen; i++) {  
        bufView[i] = str.charCodeAt(i);  
    }  
    return buf;  
}

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