如何实时侦听Metamask账户更换情况

扫码链接5000+新基建产业链上下游从业者,入群请备注“机智地+姓名+公司+岗位

用户体验是将用户加入分散应用程序(DApp)的最大障碍之一。现代网络浏览器默认情况下不支持web3,因此大多数用户必须通过Metamask浏览器扩展程序与DApp进行交互。

Metamask允许用户更改网络并从扩展名中更改其活动钱包地址。

如何实时侦听Metamask账户更换情况

不幸的是,DApps不知道用户什么时候更改了帐户,而没有专门检查它。这意味着,如果用户在使用您的DApp时更改了帐户,则会向他们显示与上一个帐户相关的过期信息。

幸运的是,Metamask现在允许您通过简单的代码实时侦听用户实时更改其帐户的情况。

检测帐户更改

假设有一个名为getAccount()的函数连接到以太坊并加载正在使用的活动帐户。每当加载DApp时都会发生一次操作。

Metamask在帐户选择更改时触发accountsChanged事件,我们可以监听该事件。代码如下:

async function getAccount() {
  const accounts = await ethereum.enable();
  const account = accounts[0];
  // do something with new account here
}

ethereum.on(‘accountsChanged’, function (accounts) {
  getAccount();
})

使用此事件侦听器,您的DApp可以实时获取最新的钱包数据,使您的用户体验更加流畅和最新。图显示了一个DApp,该应用程序检索活动的钱包地址,并在触发accountChanged事件时将其显示在按钮中。


如何实时侦听Metamask账户更换情况

声明: 本文由入驻基智地平台的作者撰写,观点仅代表作者本人,不代表基智地立场;基智地发布此信息的目的在于传播更多信息,与本站立场无关。

发表评论

邮箱地址不会被公开。 必填项已用*标注