tony马
tony马
  • 发布:2019-06-29 18:34
  • 更新:2023-10-23 15:09
  • 阅读:4110

安全随机数的生成问题

分类:uni-app

[Vue warn]: Error in onLaunch hook: "Error: Secure random number generation is not supported by this browser.
Use Chrome, Firefox or Internet Explorer 11"

请问这个怎么解决?

2019-06-29 18:34 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

自定义组件模式下,js运行在独立的jscore引擎下而不是webview中,没有这个js api。自己模拟吧

  • tony马 (作者)

    那这个怎么解决?

    2019-06-29 18:57

  • harvey_luo

    回复 tony马: 请问解决了吗,我也遇到了同样的问题

    2019-09-11 16:32

Javin

Javin

这怎么解决啊开发卡住了

Javin

Javin

先在你的工程中全局搜索Error: Secure random number generation is not supported by this browser.一般情况下会搜索出两个文件UniApp/projectName/unpackage/dist/dev/app-plus/app-service.js和另一个文件比如node-rsa.js。service.js不用管这是uniapp编译时生成的,打开另一个文件在其中搜索Error: Secure random number generation is not supported by this browser.会定位到这一行错误提示代码,在这行代码上下找一找应该会找到crypto.getRandomValues函数可以试着搜索一下getRandomValues,找到以后增加一个判断如果运行的时候没有这个函数就用自己的函数替换掉它如下:

var getRandomValues;  

if (crypto && crypto.getRandomValues) { // 判断是否得到支持  

  getRandomValues = crypto.getRandomValues;  

} else { // 如果没有得到支持写一个自己的随机值函数  

  getRandomValues = function ( array ) {      

    for (var i = 0, l = array.length; i < l; i++) {  

      array[i] = Math.floor(Math.random() * 256);  
    }  

    return array;  
  }  
}
  • 非零即为真

    大佬,在哪个文件中改啊?

    2019-09-29 17:37

  • Javin

    回复 非零即为真: 因为我们第三方依赖可能不同所以文件会不同,你运行app的时候会有报错吧比如我的报错是Error: Secure random number generation is not supported by this browser.复制你的报错文件在你的当前uniapp当前工程目录下全局搜索这行报错看在哪个文件中,一般就在这个文件中改。

    2019-10-02 15:05

  • 1***@qq.com

    回复 Javin: 改完之后,模拟到真机上会被删掉,怎么长久保存到文件里,并且云打包也不会被删掉

    2019-10-11 14:35

  • Javin

    回复 1***@qq.com: 可能是HBuildX的bug,建议尝试从建工程然后把代码拷贝到新工程下试试是否可行。

    2019-10-15 07:09

德鲁大叔接私活

德鲁大叔接私活 - 承接私活,前端 后端 写页面 对接接口 个人开发30+产品经验, 个人插件地址:https://ext.dcloud.net.cn/publisher?id=274968,qq: 1255364070

有人解决了吗

4***@qq.com

4***@qq.com - 小白

2023年了 还是不行

要回复问题请先登录注册