Web3js
將 web3.js 集成到原生 iOS 和 Android 應用程序中
將 web3.js 集成到原生 iOS 和 Android 應用程序中存在問題。
我很難將 web3.js 集成到*本機移動應用程序(iOS 和 Android)*中,使用雲伺服器和 npm install web3 並讓移動應用程序連接到該雲伺服器實例以對已部署的所有呼叫進行呼叫是否合理智能合約?
我看到的唯一問題是,它通過在中間放置一個雲伺服器來挑戰區塊鏈的點對點架構。
您可以使用 Infura APIS 從移動設備與本地區塊鏈互動https://blog.infura.io/getting-started-with-infura-28e41844cc89這樣您就不必設置自己的代理伺服器
對於iOS:skywinder/web3swift
這是 Swift 中優雅的 web3js 功能。原生 ABI 解析和智能合約互動
這是一個發送交易的例子:
TransactionsService().prepareTransactionForSendingEther(destinationAddressString: destinationAddress, amountString: amount, gasLimit: 21000) { (result) in switch result { case .Success(let transaction): guard let gasPrice = self.gasPriceTextField.text else { return } guard let gasLimit = self.gasLimitTextField.text else { return } guard let name = self.walletName else { return } let dict:[String:Any] = [ "gasPrice":gasPrice, "gasLimit":gasLimit, "transaction":transaction, "amount":amount, "name": name, "fromAddress": self.walletAddress!, "toAddress": destinationAddress] self.sendFunds(dict: dict, enteredPassword: withPassword) case .Error(let error): var textToSend = "" if let error = error as? SendErrors { switch error { case .invalidDestinationAddress: textToSend = "invalidAddress" default: break } } showErrorAlert(for: self, error: error) } }
對於Android,您可以使用web3j/web3j