美文网首页
极光推送教程

极光推送教程

作者: Mz楓 | 来源:发表于2016-12-16 11:13 被阅读0次

这是 react native 配置极光推送使用的组件,比较常用https://github.com/jpush/jpush-react-native 先把组件地址贴出来,方便大家使用参考。

不扯没用的,还要洗洗睡觉,直接把自己配置iOS极光的步骤给大家贴出来

1,首先大家项目环境,签名证书什么都配置完毕,开始集成推送的前提下

在项目当前目录执行:

npm install jpush-react-native --save

rnpm link jpush-react-native

注释:如果没有安装 rnpm 先 npm install rnpm 安装 rnpm(详情百度。。。)

2, 执行完之后,打开 Xcode ,在 iOS 工程 target 的 Build Phases->Link Binary with Libraries 中加入如下库

libz.tbd

CoreTelephony.framework

Security.framework

CFNetwork.framework

CoreFoundation.framework

SystemConfiguration.framework

Foundation.framework

UIKit.framework

UserNotifications.framework

libresolv.tbd

在 AppDelegate.h 文件中 导入头文件

#import#ifdef NSFoundationVersionNumber_iOS_9_x_Max#import#endif

在 AppDelegate.h 文件中 填写如下代码,这里的的 appkey、channel、和 isProduction 填写自己的

staticNSString *appKey = @"";//填写appkeystaticNSString *channel = @"";//填写channel  一般为nilstaticBOOL isProduction =false;//填写isProdurion  平时测试时为false ,生产时填写true

在AppDelegate.m 的didFinishLaunchingWithOptions 方法里面添加如下代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{if([[UIDevice currentDevice].systemVersion floatValue] >=10.0) { #ifdef NSFoundationVersionNumber_iOS_9_x_Max    JPUSHRegisterEntity * entity = [[JPUSHRegisterEntity alloc] init];    entity.types = UNAuthorizationOptionAlert|UNAuthorizationOptionBadge|UNAuthorizationOptionSound;    [JPUSHService registerForRemoteNotificationConfig:entity delegate:self];#endif}elseif([[UIDevice currentDevice].systemVersion floatValue] >=8.0) {    [JPUSHService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |                                                      UIUserNotificationTypeSound |                                                      UIUserNotificationTypeAlert)                                          categories:nil];  }else{//这里是支持 iOS8之前的系统,不需要的可以删掉[JPUSHService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |                                                      UIRemoteNotificationTypeSound |                                                      UIRemoteNotificationTypeAlert)                                          categories:nil];  }  [JPUSHService setupWithOption:launchOptions appKey:appKey                        channel:channel apsForProduction:isProduction];}

在AppDelegate.m 的didRegisterForRemoteNotificationsWithDeviceToken 方法中添加 [JPUSHService registerDeviceToken:deviceToken]; 如下所示

- (void)application:(UIApplication *)applicationdidRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {  [JPUSHService registerDeviceToken:deviceToken];}

为了在收到推送点击进入应用能够获取该条推送内容需要在 AppDelegate.m didReceiveRemoteNotification 方法里面添加 [[NSNotificationCenter defaultCenter] postNotificationName:kJPFDidReceiveRemoteNotification object:userInfo] 方法,注意:这里需要在两个方法里面加一个是iOS7以前的一个是iOS7即以后的,如果AppDelegate.m 没有这个两个方法则直接复制这两个方法,在 iOS10 的设备则可以使用JPush 提供的两个方法;如下所示

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {// 取得 APNs 标准信息内容[[NSNotificationCenter defaultCenter] postNotificationName:kJPFDidReceiveRemoteNotification object:userInfo];}//iOS 7 Remote Notification- (void)application:(UIApplication *)application didReceiveRemoteNotification:  (NSDictionary *)userInfo fetchCompletionHandler:(void(^)  (UIBackgroundFetchResult))completionHandler {  [[NSNotificationCenter defaultCenter] postNotificationName:kJPFDidReceiveRemoteNotification object:userInfo];}// iOS 10 Support- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void(^)(NSInteger))completionHandler {// RequiredNSDictionary * userInfo = notification.request.content.userInfo;if([notification.request.trigger isKindOfClass:[UNPushNotificationTriggerclass]]){    [JPUSHService handleRemoteNotification:userInfo];    [[NSNotificationCenter defaultCenter] postNotificationName:kJPFDidReceiveRemoteNotification object:userInfo];  }  completionHandler(UNNotificationPresentationOptionAlert);// 需要执行这个方法,选择是否提醒用户,有Badge、Sound、Alert三种类型可以选择设置}// iOS 10 Support- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)())completionHandler {// RequiredNSDictionary * userInfo = response.notification.request.content.userInfo;if([response.notification.request.trigger isKindOfClass:[UNPushNotificationTriggerclass]]){    [JPUSHService handleRemoteNotification:userInfo];    [[NSNotificationCenter defaultCenter] postNotificationName:kJPFDidReceiveRemoteNotification object:userInfo];  }  completionHandler();// 系统要求执行这个方法}    这些步骤 git 上面都有,但接下来的才是鸡汤!!!在 Xcode 中打开 Push Notifications!

2)

3)

然后在 js 代码里面通过如下监听回调获取通知,最好实在项目入口文件里监听

var{ NativeAppEventEmitter } =require('react-native');componentDidMount (){varsubscription = NativeAppEventEmitter.addListener('ReceiveNotification',          (notification) =>console.log(notification)        );}...// 千万不要忘记忘记取消订阅, 通常在componentWillUnmount函数中实现。subscription.remove();

前前后后在 react native 配置里三四遍,配置并不难,特摘极光 git 上说明加上本人配置过程中的踩过的坑,供大家参考,如果有什么不正确的地方望大家及时指出,谢谢

来自:http://www.cnblogs.com/yazhengwang/p/yazheng007.html

相关文章

  • 极光后台推送响铃

    前言: 本教程不讨论极光推送的集成,请自行百度如何集成极光推送本教程适用于需要支持ios10以下的后台推送响铃对于...

  • 极光推送教程

    这是 react native 配置极光推送使用的组件,比较常用https://github.com/jpush/...

  • 极光推送教程

    创建应用在 JPush的管理Portal 上创建应用并上传APNs证书。如果对APNs证书不太了解 请参考: iO...

  • (五)[极光推送通知 IOS & 安卓]React Native

    由于我们都会遇到推送通知服务,而看到网上教程多半都是极光的,并且口碑都不错,所以我也使用极光的把。 整合极光推送也...

  • 极光推送

    极光推送视频地址,非常详细的极光推送视频 极光推送

  • react-native ios 集成极光推送走过的坑

    集成最新极光推送教程 github地址:https://github.com/jpush/jpush-react-...

  • 傻瓜式集成iOS极光推送基础篇

    极光推送和百度比起来较为简单,但是很有新手对于集成极光推送时配置证书比较晕头转向,也没有太小白的教程,所以写了这个...

  • 极光推送 iOS 官方文档快速入口

    极光推送官网iOS SDK 概述iOS SDK 教程iOS SDK APIiOS SDK 集成指南iOS SDK ...

  • 远程推送

    实现推送方式有多种,首先比较简单的就是第三方的,有信鸽推送,极光推送,关于这些推送实现网上有多种教程. 那么因为在...

  • flutter集成极光推送教程

    先去极光后台创建应用 然后在这里填写自己的flutter包名 JPUSH_PKGNAME填写自己的包名具体包名在这...

网友评论

      本文标题:极光推送教程

      本文链接:https://www.haomeiwen.com/subject/nwdnmttx.html