我在前端调用合同方法时遇到麻烦

时间:2019-07-05 06:19:18

标签: ethereum solidity web3 web3js

我想从浏览器本身调用合同,因此我使用了Metamask,它可以无缝运行,但是由于Metamask无法在手机中使用,所以我不想使用Metamask

我已经使用了metamask,它有效 我在后端使用了trufflehdwallet,它有效 我用过testrpc网络,它也可以工作

if (window.ethereum) {
        window.web3 = new Web3(ethereum);
        try {
            // Request account access if needed
            await ethereum.enable();

            web3.eth.getAccounts(function (err, accounts) {
                if (!err) {
                    get_contract();
                }
            })

        } catch (error) {
            // User denied account access...
        }
    }
    // Legacy dapp browsers...
    else if (window.web3) {
        window.web3 = new Web3(web3.currentProvider);

        web3.eth.getAccounts(function (err, accounts) {
            if (!err) {
                get_contract();
            }
        })
    }
    // Non-dapp browsers...
    else {
        console.log('Non-Ethereum browser detected. You should consider installing MetaMask !');
    }

我想要这样的东西

web3 = new Web3(new Web3.providers.HttpProvider("https://ropsten.infura.io/v3/24b7104373aa4038a2d0b64d9d60bd85"));

1 个答案:

答案 0 :(得分:1)

我认为您的问题实际上与标题不同。 根据您的问题,我了解到您想在智能手机上使用网络dapp。

好吧,如果这是问题,那么我有几个选择。首先,如果您使用的是主网,则有一些移动应用程序,例如GnosisSafeTrustWallet。如果您使用的是测试网,则有一个名为Portis的新钱包,可用于连接公共测试网。老实说,我不建议您测试本地网络,因为它是一个Web dapp,您可以在笔记本电脑上使用metamask进行测试。

因此,我的最终提示是web3connect。这使用户可以选择他的钱包。