今天就跟大家聊聊有關(guān)Metamask如何正常訪問(wèn)以太坊賬戶,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到明水網(wǎng)站設(shè)計(jì)與明水網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類(lèi)型包括:成都網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋明水地區(qū)。
當(dāng)你使用Metamask測(cè)試以太坊DApp時(shí),如果出現(xiàn)莫名其妙的問(wèn)題,檢查一下web3.eth.accounts是否可以獲取到賬戶,如果不能獲取的話,那么最大的可能是你使用了新版的Metamask,并且默認(rèn)啟用了隱私模式。
有兩種辦法來(lái)讓你的DApp可以正常訪問(wèn)Metamask管理的賬戶:關(guān)閉隱私模式,或者修改代碼使其兼容隱私模式。
在metamask中首先進(jìn)入設(shè)置,然后點(diǎn)擊security & privacy,在隱私模式菜單,選擇關(guān)閉隱私模式即可:
在2018年11月,Metamask剛引入隱私模式時(shí),該選項(xiàng)默認(rèn)是關(guān)閉的。但是在最新的版本中,已經(jīng)默認(rèn)開(kāi)啟了隱私模式。要求每個(gè)用戶都手動(dòng)關(guān)閉隱私模式是不現(xiàn)實(shí)的,因此更好的方案是修改我們的JavaScript代碼來(lái)兼容隱私模式:
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
來(lái)判斷是否新版metamask,如果是的話,就調(diào)用ethereum.enable()
方法來(lái)請(qǐng)求用戶授權(quán),這將在用戶網(wǎng)頁(yè)中彈出一個(gè)授權(quán)對(duì)話框,類(lèi)似如下:
看完上述內(nèi)容,你們對(duì)Metamask如何正常訪問(wèn)以太坊賬戶有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。