react-native-randombytes/README.md

92 lines
2.2 KiB
Markdown
Raw Permalink Normal View History

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);
}
...
```