0.1.5 • Published 6 years ago

tnrn-umeng v0.1.5

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

npm react-native MIT Downloads

友盟 推送 & 统计 React Native.

Getting Started

First, cd to your RN project directory, and install RNMK through rnpm . If you don't have rnpm, you can install RNMK from npm with the command npm i -S tnrn-umeng and link it manually (see below).

iOS

  • React Native < 0.46 (Using rnpm)

    rnpm install tnrn-umeng

  • React Native >= 0.46

    $npm install -S tnrn-umeng

    $react-native link tnrn-umeng

在工程target的 Build Phases->Link Binary with Libraries 中加入 libz.tbd libsqlite3.tbd

Build Settings->Search Paths->Framework Search Paths 中加入路径 $(SRCROOT)/../node_modules/tnrn-umeng/ios/Framework

Build Settings->Link->Other Linker Flags 中加入 -framework "UMPush"-framework "UMCommon"

Android

  • React Native < 0.46 (Using rnpm)

    rnpm install tnrn-umeng

  • React Native >= 0.46

    $npm install -S tnrn-umeng

    $react-native link tnrn-umeng

Manually

  1. JDK 7+ is required
  2. Add the following snippet to your android/settings.gradle:

    include ':tnrn-umeng'
    project(':tnrn-umeng').projectDir = new File(rootProject.projectDir, '../node_modules/tnrn-umeng/android/app')
  3. Declare the dependency in your android/app/build.gradle

    dependencies {
        ...
        compile project(':tnrn-umeng')
    }
  4. Import import io.tnrn.splashscreen.SplashScreenPackage; and register it in your MainActivity (or equivalent, RN >= 0.32 MainApplication.java):

    @Override
    protected List<ReactPackage> getPackages() {
        return Arrays.asList(
                new MainReactPackage(),
                new SplashScreenPackage(MainActivity.activity, true)
        );
    }

Finally, you're good to go, feel free to require tnrn-umeng in your JS files.

Have fun! :metal:

Basic Usage

Use in AppDelegate.m for iOS

#import <RNUmeng/RNUmeng.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  ...

  [RNUmeng registerWithAppkey:UmengAppKey launchOptions:launchOptions];

  ...
}

#pragma mark - push

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
  [RNUmeng didRegisterDeviceToken:deviceToken];
}

// iOS10 以下
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
  [RNUmeng didReceiveRemoteNotification:userInfo applicationState:application.applicationState];
  completionHandler(UIBackgroundFetchResultNewData);
}

Use library with Push service in *.js

import UMPush from 'tnrn-umeng'

...

UMPush.receiveNotification(result => {
  console.log('receiveNotification = ', result)
})

UMPush.openNotification(result => {
  console.log('openNotification = ', result)
})

UMPush.getDeviceToken(result => {
	console.log('deviceToken = ', result)
})

// only support iOS
UMPush.getAuthorizationStatus(result => {
	console.log('getAuthorizationStatus = ', result)
})
    
UMPush.addAlias('test', (result) => {
  console.log('addAliais = ', result)
}) 

...    

Questions

create an issue

made with ♥

0.1.5

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago