hockeyapp-react-native
HockeyApp plugin for React Native supporting Android and iOS.
Last updated 4 years ago by pi0 .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install hockeyapp-react-native 
SYNC missed versions from official npm registry.

react-native-hockeyapp

HockeyApp integration for React Native.

Requirements

  • iOS 7+
  • Android
  • React Native >0.17
  • CocoaPods

Installation

npm install hockeyapp-react-native --save

iOS

You will need:

CocoaPods (Setup)

Podfile

Add to your ios/Podfile:

pod "HockeySDK"

Run pod install

Add Pods.xcodeproj to your project

Drag-and-drop ./ios/Pods/Pods.xcodeproj into your Project > Libraries.

Add the RNHockeyApp/ folder to your project

Drag-and-drop files from ./node_modules/react-native-hockeyapp/RNHockeyApp into your Project > Libraries.

Changes to AppDelegate.m

If you wish to use Device UUID authentication or Web authentication, the following must be added to ios/AppDelegate.m

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
  if( [[BITHockeyManager sharedHockeyManager].authenticator handleOpenURL:url
                                                        sourceApplication:sourceApplication
                                                               annotation:annotation]) {
    return YES;
  }

  /* Your own custom URL handlers */

  return NO;
}

Android (React Native >= 0.29)

Google project configuration

  • In android/setting.gradle
...
include ':react-native-hockeyapp', ':app'
project(':react-native-hockeyapp').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-hockeyapp/android')
  • In android/build.gradle
...
repositories {
    jcenter()
    mavenCentral()
}
dependencies {
    classpath 'com.android.tools.build:gradle:....'
    classpath 'net.hockeyapp.android:HockeySDK:4.1.1' // <--- add this
}
  • In android/app/build.gradle
apply plugin: "com.android.application"
...
dependencies {
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.facebook.react:react-native:0.29.+"
    compile project(":hockeyapp-react-native") // <--- add this
}
  • Manifest file
<application ..>
    <activity android:name="net.hockeyapp.android.UpdateActivity" />
    <activity android:name="net.hockeyapp.android.FeedbackActivity" />
</application>
  • Register Module (in MainApplication.java)
import com.slowpath.hockeyapp.RNHockeyAppModule; // <--- import
import com.slowpath.hockeyapp.RNHockeyAppPackage;  // <--- import

public class MainApplication extends Application implements ReactApplication {
  ......

  @Override
  protected List<ReactPackage> getPackages() {
    return Arrays.<ReactPackage>asList(
      new RNHockeyAppPackage(MainApplication.this), // <------ add this line to yout MainApplication class
      new MainReactPackage());
  }

  ......

}

Android (React Native 0.17 - 0.28)

Google project configuration

  • In android/setting.gradle
...
include ':react-native-hockeyapp', ':app'
project(':react-native-hockeyapp').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-hockeyapp/android')
  • In android/build.gradle
...
repositories {
    jcenter()
    mavenCentral()
}
dependencies {
    classpath 'com.android.tools.build:gradle:1.3.1'
    classpath 'net.hockeyapp.android:HockeySDK:3.7.0' // <--- add this
}
  • In android/app/build.gradle
apply plugin: "com.android.application"
...
dependencies {
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.facebook.react:react-native:0.17.+"
    compile project(":react-native-hockeyapp") // <--- add this
}
  • Manifest file
<application ..>
    <activity android:name="net.hockeyapp.android.UpdateActivity" />
    <activity android:name="net.hockeyapp.android.FeedbackActivity" />
</application>
  • Register Module (in MainActivity.java)
import com.slowpath.hockeyapp.RNHockeyAppModule; // <--- import
import com.slowpath.hockeyapp.RNHockeyAppPackage;  // <--- import

public class MainActivity extends ReactActivity {
  ......

  @Override
  protected List<ReactPackage> getPackages() {
    return Arrays.<ReactPackage>asList(
      new RNHockeyAppPackage(this), // <------ add this line to yout MainActivity class
      new MainReactPackage());
  }

  ......

}

Usage

From your JS files for both iOS and Android:

var HockeyApp = require('react-native-hockeyapp');

componentWillMount() {
    HockeyApp.configure(HOCKEY_APP_ID, true);
}

componentDidMount() {
    HockeyApp.start();
    HockeyApp.checkForUpdate();
}

You have available these methods:

// Configure the settings
HockeyApp.configure(
    HockeyAppId: string, 
    autoSendCrashReports: boolean = true,
    authenticationType: AuthenticationType = AuthenticationType.Anonymous, 
    appSecret: string = '', 
    ignoreDefaultHandler: string = false,
    metrics: boolean = true
); 

HockeyApp.start(); // Start the HockeyApp integration

HockeyApp.checkForUpdate(); // Check if there's new version and if so trigger update

HockeyApp.feedback(); // Ask user for feedback.

HockeyApp.addMetadata(metadata: object); // Add metadata to crash report.  The argument must be an object with key-value pairs.

HockeyApp.generateTestCrash(); // Generate test crash. Only works in no-debug mode.

HockeyApp.trackEvent(eventName: string); // Send event metrics

The following authentication methods are available:

  1. AuthenticationType.Anonymous - Anonymous Authentication
  2. AuthenticationType.EmailSecret - HockeyApp email & App Secret
  3. AuthenticationType.EmailPassword - HockeyApp email & password
  4. AuthenticationType.DeviceUUID - HockeyApp registered device UUID
  5. AuthenticationType.Web - HockeyApp Web Auth (iOS only)

Contributions

See https://github.com/slowpath/react-native-hockeyapp/graphs/contributors

Current Tags

  • 0.6.1                                ...           latest (4 years ago)

6 Versions

  • 0.6.1                                ...           4 years ago
  • 0.6.0                                ...           4 years ago
  • 0.5.5                                ...           4 years ago
  • 0.5.4                                ...           4 years ago
  • 0.5.3                                ...           4 years ago
  • 0.5.0                                ...           4 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 1
Last Day 0
Last Week 0
Last Month 1
Dependencies (0)
None
Dev Dependencies (0)
None
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |