Skip to content

React Native

  • Install dependency

yarn add react-native-wistory

iOS

Note: Framework compiled with Swift 5.3. XCode 12 is required to use sdk.

  • Target iOS 11. Update in Podfile (platform :ios, '11.0') and XCode (General -> Deployment Info -> Target)

  • Insert into Podfile:

source 'https://github.com/Wistory/Specs.git'
source 'https://github.com/CocoaPods/Specs.git'

...

  pod 'Wistory', '~> 0.4.1'

  • Run pod install

Note: after update native Wistory sdk in Podfile use pod install --repo-update

  • Set Build settings -> Build options -> Enable bitcode to No in XCode project

Android

  • minSdkVersion for android - 21. Update android/build.gradle

  • add maven { url 'https://www.jitpack.io' } in android/build.gradle

allprojects {
    repositories {
        maven {
          url 'https://www.jitpack.io'
        }
  • update MainApplication.java:
import ru.vvdev.wistory.rn.WistoryInitializer; // <----

public class MainApplication extends Application implements ReactApplication {
...

  @Override
  public void onCreate() {
    super.onCreate();
    WistoryInitializer.initialize(this); // <-----
    SoLoader.init(this, /* native exopackage */ false);
    initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
  }
}
  • config sdk in AndroidManifest.xml. Insert meta-data inside application tag:
<meta-data
        android:name="WISTORY_TOKEN"
        android:value="YOUR_COMPANY_TOKEN" />
  • (optional) Specify meta-data to change wistory server url
<meta-data
        android:name="WISTORY_SERVER_URL"
        android:value="YOUR_SERVER_URL" />

Usage

  • import dependency

import {WistoryView, Wistory} from 'react-native-wistory' - configure ios sdk:

Wistory.init('COMPANY_TOKEN');

This function do nothing for android.

  • render WistoryView:
function App() {
  return (
    <View style={{flex: 1}}>
      <WistoryView />
    </View
  )
}

TODO

  • [ ] change base url for ios
  • [ ] wrap android listener methods
  • [ ] customize android sdk params from javascript
  • [ ] wrap ios delegate methods
  • [ ] publish npm package

Licence

Shield: CC BY 4.0

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0