溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Metamask如何正常訪問以太坊賬戶

發(fā)布時間:2022-01-07 21:06:47 來源:億速云 閱讀:170 作者:柒染 欄目:軟件技術(shù)

今天就跟大家聊聊有關(guān)Metamask如何正常訪問以太坊賬戶,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

當你使用Metamask測試以太坊DApp時,如果出現(xiàn)莫名其妙的問題,檢查一下web3.eth.accounts是否可以獲取到賬戶,如果不能獲取的話,那么最大的可能是你使用了新版的Metamask,并且默認啟用了隱私模式。

有兩種辦法來讓你的DApp可以正常訪問Metamask管理的賬戶:關(guān)閉隱私模式,或者修改代碼使其兼容隱私模式。

一、關(guān)閉隱私模式

在metamask中首先進入設(shè)置,然后點擊security & privacy,在隱私模式菜單,選擇關(guān)閉隱私模式即可:

Metamask如何正常訪問以太坊賬戶

二、兼容隱私模式

在2018年11月,Metamask剛引入隱私模式時,該選項默認是關(guān)閉的。但是在最新的版本中,已經(jīng)默認開啟了隱私模式。要求每個用戶都手動關(guān)閉隱私模式是不現(xiàn)實的,因此更好的方案是修改我們的JavaScript代碼來兼容隱私模式:

window.addEventListener('load', async () => {
    // Modern dapp browsers...
    if (window.ethereum) {
        window.web3 = new Web3(ethereum);
        try {
            // Request account access if needed
            await ethereum.enable();
            // Acccounts now exposed
            web3.eth.sendTransaction({/* ... */});
        } catch (error) {
            // User denied account access...
        }
    }
    // Legacy dapp browsers...
    else if (window.web3) {
        window.web3 = new Web3(web3.currentProvider);
        // Acccounts always exposed
        web3.eth.sendTransaction({/* ... */});
    }
    // Non-dapp browsers...
    else {
        console.log('Non-Ethereum browser detected. You should consider trying MetaMask!');
    }
});

使用window.ethereum來判斷是否新版metamask,如果是的話,就調(diào)用ethereum.enable()方法來請求用戶授權(quán),這將在用戶網(wǎng)頁中彈出一個授權(quán)對話框,類似如下:

Metamask如何正常訪問以太坊賬戶

看完上述內(nèi)容,你們對Metamask如何正常訪問以太坊賬戶有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI