我在前端调用合同方法时遇到问题

I am getting trouble calling the contract methods in front end

我想从浏览器本身调用我的合同,所以我为此使用了 Metamask,它可以无缝工作,但我不想使用 Metamask,因为 Metamask 不能在 phone

我用过 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"));

我认为你的问题实际上与标题不同。 从你的问题中,我了解到你想在你的智能手机上使用你的 web dapp。

好吧,如果这是你的问题,我有几个选项供你选择。首先,如果你使用的是主网,你有一些移动应用程序,例如 GnosisSafe or TrustWallet. If you are using testnets, there's a new wallet named Portis,可以让你连接到 public 测试网。老实说,我不建议你测试本地网络,因为它是一个网络 dapp,你可以使用 metamask 在你的笔记本电脑上进行测试。

所以,我最后的提示是 web3connect。这允许用户选择他的钱包。