环境
node版本必须大于6
"react-native":"0.49.5",
"web3":"1.0.0-beta.34",
"node-libs-browser":"2.1.0",
"babel-cli":"^6.26.0",
"babel-preset-es2015":"^6.24.1",
1.安装node-libs-browser
npm install --save node-libs-browser
2.在项目的根目录下创建一个名为rn-cli.config.js的文件,并将以下代码添加到其中:
const extraNodeModules = require('node-libs-browser');
module.exports={
extraNodeModules,
};
3.在项目的根目录下创建一个名为global.js的文件,并将以下代码添加到其中:
//Inject node globals into React Native global scope.
global.Buffer = require('buffer').Buffer;
global.process = require('process');
if(typeof btoa === 'undefined') {
global.btoa = function(str) {
return new Buffer(str,'binary').toString('base64');
};
}
if(typeof atob === 'undefined') {
global.atob=function(b64Encoded) {
return new Buffer(b64Encoded,'base64').toString('binary');
};
}
4.将global.js文件导入App.js文件
import ' ./global ';
5.安装babel-preset-es2015
npm install --save-dev babel-cli babel-preset-es2015
6.现在我们可以安装web3.js api
yarn add web3@'1.0.0-beta.34' --save
7.需要用到的js文件中引入
const Web3 = require(' web3 ');
8.测试
componentWillMount() {
const web3=new Web3(
new Web3.providers.HttpProvider('https://mainnet.infura.io/')
);
}
render(){
web3.eth.getBlock('latest').then(console.log)
return(
<View>
<Text>测试</Text>
</View>
)
}
9.报错冲突解决(修改成如下代码)
React-native对接以太坊钱包