2015-11-19 20:09:49 +00:00
|
|
|
# react-native-randombytes
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
```js
|
|
|
|
var randomBytes = require('react-native-randombytes')
|
2016-01-23 15:51:33 +00:00
|
|
|
|
|
|
|
// synchronous API
|
|
|
|
// uses SJCL
|
|
|
|
var rand = randomBytes(4)
|
|
|
|
|
|
|
|
// asynchronous API
|
|
|
|
// uses iOS-side SecRandomCopyBytes
|
2015-11-19 20:09:49 +00:00
|
|
|
randomBytes(4, (err, bytes) => {
|
|
|
|
console.log(bytes.toString('hex'))
|
|
|
|
})
|
|
|
|
```
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
2016-03-21 10:42:49 +00:00
|
|
|
### Automatic - Android / iOS (recommended)
|
|
|
|
|
|
|
|
```bash
|
|
|
|
rnpm link
|
|
|
|
```
|
|
|
|
|
|
|
|
### Manual
|
|
|
|
|
|
|
|
#### `iOS`
|
2015-11-19 20:09:49 +00:00
|
|
|
|
|
|
|
* Drag RNRandomBytes.xcodeproj from node_modules/react-native-randombytes into your XCode project.
|
|
|
|
|
|
|
|
* Click on the project in XCode, go to Build Phases, then Link Binary With Libraries and add `libRNRandomBytes.a`
|
|
|
|
|
|
|
|
Confused? See an example with screenshots [here](http://facebook.github.io/react-native/docs/linking-libraries-ios.html#content)
|
2016-01-14 01:12:14 +00:00
|
|
|
|
|
|
|
|
2016-03-21 10:42:49 +00:00
|
|
|
#### `Android`
|
2016-01-14 01:12:14 +00:00
|
|
|
|
|
|
|
* Update Gradle Settings
|
|
|
|
|
|
|
|
```gradle
|
|
|
|
// file: android/settings.gradle
|
|
|
|
...
|
|
|
|
|
|
|
|
include ':randombytes', ':app'
|
2016-10-26 02:50:45 +00:00
|
|
|
project(':randombytes').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-randombytes/android')
|
2016-01-14 01:12:14 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
* Update Gradle Build
|
|
|
|
|
|
|
|
```gradle
|
|
|
|
// file: android/app/build.gradle
|
|
|
|
...
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
...
|
|
|
|
compile project(':randombytes')
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
* Register React Package
|
|
|
|
|
|
|
|
```java
|
|
|
|
...
|
|
|
|
import com.bitgo.randombytes.RandomBytesPackage // import
|
|
|
|
|
|
|
|
public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler {
|
|
|
|
|
|
|
|
private ReactInstanceManager mReactInstanceManager;
|
|
|
|
private ReactRootView mReactRootView;
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
mReactRootView = new ReactRootView(this);
|
|
|
|
mReactInstanceManager = ReactInstanceManager.builder()
|
|
|
|
.setApplication(getApplication())
|
|
|
|
.setBundleAssetName("index.android.bundle")
|
|
|
|
.setJSMainModuleName("index.android")
|
|
|
|
.addPackage(new MainReactPackage())
|
2016-03-21 10:42:49 +00:00
|
|
|
.addPackage(new RandomBytesPackage()) // register package here
|
2016-01-14 01:12:14 +00:00
|
|
|
.setUseDeveloperSupport(BuildConfig.DEBUG)
|
|
|
|
.setInitialLifecycleState(LifecycleState.RESUMED)
|
|
|
|
.build();
|
|
|
|
mReactRootView.startReactApplication(mReactInstanceManager, "AwesomeProject", null);
|
|
|
|
setContentView(mReactRootView);
|
|
|
|
}
|
|
|
|
...
|
|
|
|
|
|
|
|
```
|