crypto.getRandomValues() 不支持

crypto.getRandomValues() not supported

当我尝试使用 react-native-qrcode-generator

生成 QR 码时,npm react-native-webview@9.0.1 出现此错误

我将 react-native 与 expo 管理的工作流一起使用。问题是它在 iOS 上有效,我只在 Android

上得到错误

我自己搜索了一个解决方案,并尝试安装 react-native-get-random-values,但也没有用。

有什么想法吗?

我用 Expo SDK 37 和你提到的确切版本做了一个 snack

{
  "dependencies": {
    "react-native-webview": "9.0.1",
    "react-native-qrcode-generator": "1.2.1"
  }
}

它在我的 Android phone 上工作得很好。问题一定出在您实施的其他地方。

如果您最近更改了版本,请尝试删除您的 node_modules 并重新安装软件包。仔细检查我的示例,如果您做了一些不同的事情,请告诉我?

我刚刚在 android 上遇到了同样的问题。在 iOS.

上工作正常

我解决了它:

  1. 卸载现有的 npm uninstall react-native-webview
  2. 改用expo install react-native-webview

尝试使用:npm install --save react-native-webview
对我有用。

这是对我有用的方法

  1. 安装 react-native-get-random-values

    npm install --save react-native-get-random-values
    
  2. 在 webview 导入之前导入 react-native-get-random-values(非常重要

    import 'react-native-get-random-values';
    import {WebView} from 'react-native-webview';
    

如需了解更多信息,请阅读本文issue

他们在 webview 标签 9.2.2 中修复了它,如变更日志中所示 https://github.com/react-native-community/react-native-webview/releases/tag/v9.2.2

React Native

Install react-native-get-random-values
Import it before uuid:
import 'react-native-get-random-values';
import { v4 as uuidv4 } from 'uuid';