gpt4 book ai didi

javascript - Metamask 仅在页面刷新后注入(inject) web3

转载 作者:行者123 更新时间:2023-11-29 23:19:37 25 4
gpt4 key购买 nike

在我的 React 应用程序中,我正在检查 web3,如下所示,但我需要在 chrome 上安装 metamask 后至少刷新一次页面。

detectAndReadMetaMaskAccount() {
return new Promise((resolve, reject) => {
if (typeof web3 === 'undefined' || typeof web3.currentProvider === 'undefined' || web3.currentProvider.isMetaMask !== true) {
reject({
code: "error.metamask.missing"
});
}
}

下面是我正在做的步骤:
1. 加载我的页面。
2. 在 chrome 上安装 metamask。
3. 单击调用上述函数但 web3 未定义的提交按钮。
4. 但是页面刷新后得到web3.

所以我的问题是,metamask 何时以及如何注入(inject) web3?有没有什么方法可以让 metamask 在不刷新页面的情况下注入(inject) web3?

最佳答案

不幸的是,我找不到任何方法来强制 web3 在安装 MetaMask 后更新而不重新加载页面。

作为 hack 解决方法,我在窗口焦点更改时强制重新加载页面:

window.onfocus = () => {
window.location.reload();
}

这背后的基本原理是,我打开页面以在新选项卡中安装 MetaMask 扩展,用户需要返回到我的选项卡才能继续入职流程。

关于javascript - Metamask 仅在页面刷新后注入(inject) web3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51209029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com