Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
android
ios
README.md
index.js
package.json

README.md

react-native-jpush

现推荐使用极光官方维护的推送插件jpush-react-native

React Native的极光推送插件, react-native版本需要0.17.0及以上

如何安装

首先安装npm包

npm install react-native-jpush --save

link

rnpm link react-native-jpush

Note:

  • rnpm requires node version 4.1 or higher
  • Android SDK Build-tools 23.0.2 or higher

iOS工程配置

a.在工程target的Build Phases->Link Binary with Libraries中加入libz.tbd、CoreTelephony.framework、Security.framework

b.在你的工程中创建一个新的Property List文件,并将其命名为PushConfig.plist,文件所含字段如下:

CHANNEL
	指明应用程序包的下载渠道,为方便分渠道统计,具体值由你自行定义,如:App Store。
APP_KEY
	与JPush上申请的 AppKey 一致。
APS_FOR_PRODUCTION
	0 (默认值)表示采用的是开发证书,1 表示采用生产证书发布应用。
	注:此字段的值要与Build Settings的Code Signing配置的证书环境一致。

c.在AppDelegate.m中加入

#import "RCTJPush.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  
  [RCTJPush application:application didFinishLaunchingWithOptions:launchOptions];
  
  ...
}

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

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)notification
{
  [RCTJPush application:application didReceiveRemoteNotification:notification];
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)notification fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
  [RCTJPush application:application didReceiveRemoteNotification:notification];
  completionHandler(UIBackgroundFetchResultNewData);
}

Android配置

android/app/build.gradle里,defaultConfig栏目下添加如下代码:

manifestPlaceholders = [
    JPush_APPID: "JPush的APPID",	//在此修改JPush的APPID
    APP_CHANNEL: "应用渠道号"		//应用渠道号
]

如何使用

引入包

import JPush , {JpushEventReceiveMessage, JpushEventOpenMessage} from 'react-native-jpush'

在你的根Component中加入下面代码

componentDidMount() {
    JPush.requestPermissions()
    this.pushlisteners = [
        JPush.addEventListener(JpushEventReceiveMessage, this.onReceiveMessage.bind(this)),
        JPush.addEventListener(JpushEventOpenMessage, this.onOpenMessage.bind(this)),
    ]
}
componentWillUnmount() {
    this.pushlisteners.forEach(listener=> {
        JPush.removeEventListener(listener);
    });
}
onReceiveMessage(message) {
}
onOpenMessage(message) {
}
You can’t perform that action at this time.