Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript代码中捕获Metamask浏览器扩展中的锁定/解锁事件?_Javascript_Web3_Metamask - Fatal编程技术网

如何在Javascript代码中捕获Metamask浏览器扩展中的锁定/解锁事件?

如何在Javascript代码中捕获Metamask浏览器扩展中的锁定/解锁事件?,javascript,web3,metamask,Javascript,Web3,Metamask,我正在使用window.ethereum连接到Reactjs应用程序中的Metamask 9.3.0扩展。 Metamask似乎不会通过扩展在锁定/解锁时引发事件。下面是一些场景 我从浏览器代码连接到Metamask 浏览器代码现在可以访问帐户和余额 我点击分机上的“锁定”按钮;我从分机注销。扩展没有引发任何事件来指示元掩码已被锁定。(尝试了所有事件-断开连接、关闭(我知道它已弃用)和消息) 浏览器仍然显示帐号,因为它不知道Metamask已锁定。我们要么显示“连接到元掩码”按钮,要么显示帐号。

我正在使用window.ethereum连接到Reactjs应用程序中的Metamask 9.3.0扩展。 Metamask似乎不会通过扩展在锁定/解锁时引发事件。下面是一些场景

  • 我从浏览器代码连接到Metamask
  • 浏览器代码现在可以访问帐户和余额
  • 我点击分机上的“锁定”按钮;我从分机注销。扩展没有引发任何事件来指示元掩码已被锁定。(尝试了所有事件-断开连接、关闭(我知道它已弃用)和消息)
  • 浏览器仍然显示帐号,因为它不知道Metamask已锁定。我们要么显示“连接到元掩码”按钮,要么显示帐号。由于帐号显示在UI上,“连接到元掩码”按钮被隐藏。要访问“连接到元掩码”按钮,用户必须刷新页面。这不是一种良好的用户体验
  • 相关问题

  • 我锁定元掩码扩展
  • 我导航到我的本地主机,浏览器代码检查Metamask是否已解锁并尝试获取帐户。由于Metamask已锁定,因此不会发生任何事情
  • 现在,我通过单击扩展来登录metamask;如果登录成功,metamask将显示帐户等。扩展不会引发任何事件来指示metamask已解锁。(尝试了所有事件-断开连接、关闭(我知道它已弃用)和消息)。我现在必须单击“连接到metamask”“在站点上单击按钮,从Metamask获取帐户等,这不利于用户体验
  • 我不确定是否还有其他事件-查看了Metamask文档,但似乎没有其他事件。Web3确实处理了这些情况,但window.ethereum似乎无法处理,或者我可能遗漏了什么

    有解决办法吗