即使安装并运行 Metamask,也会出现“@metamask/detect-provider:无法检测 window.ethereum”错误

And*_*sty 5 javascript smartcontracts metamask

我正在尝试运行一个基本程序来检测用户是否安装了 window.ethereum。当我运行我的程序时,我得到“@metamask/detect-provider:无法检测window.ethereum”,即使我在浏览器中安装并运行了Metamask。有人遇到过类似的问题吗?提前致谢。

JavaScript:

import detectEthereumProvider from '@metamask/detect-provider';
 
const provider = await detectEthereumProvider();
 
if (provider) {
 
  console.log('Ethereum successfully detected!');
 
  })
} else {
 
  console.error('Please install MetaMask!', error);
}
Run Code Online (Sandbox Code Playgroud)

And*_*sty 5

事实证明这相当简单。Metamask 仅将 window.ethereum 注入到在 http 服务器上运行的访问网站中。我只需使用 Node.js 中的本地主机服务器打开我的网站。


小智 2

如果你想检查metamask是否安装,你可以这样做:

if (window.ethereum && window.ethereum.isMetaMask) {
  // metamask is installed
}
Run Code Online (Sandbox Code Playgroud)

window.ethereumMetamask 正在向浏览器添加对象。上面的代码检查window.ethereum客户端浏览器中是否有可用的对象,第二个条件window.ethereum.isMetaMask是检查window.ethereum对象是否通过元掩码注入。