关闭

JPush自定义消息的集成

标签: ios第三方使用
220人阅读 评论(0) 收藏 举报
分类:

注意:只有在前端运行的时候才能收到自定义消息的推送

1,实现方法
获取iOS的推送内容需要在delegate类中注册通知并实现回调方法。在方法
- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary ) launchOptions 加入下面的代码:

 NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter];
    [defaultCenter addObserver:self selector:@selector(networkDidReceiveMessage:) name:kJPFNetworkDidReceiveMessageNotification object:nil];

实现回调方法 networkDidReceiveMessage

  - (void)networkDidReceiveMessage:(NSNotification *)notification {
        NSDictionary * userInfo = [notification userInfo];
        NSString *content = [userInfo valueForKey:@"content"];
        NSDictionary *extras = [userInfo valueForKey:@"extras"]; 
        NSString *customizeField1 = [extras valueForKey:@"customizeField1"]; //服务端传递的Extras附加字段,key是自己定义的
    }

参数描述:
content:获取推送的内容
extras:获取用户自定义参数
customizeField1:根据自定义key获取自定义的value
更多实现参考 SDK下载压缩包中的 demo。

2,在某个VC中实现接受自定义消息
头文件需要引入#import “JPUSHService.h”和#import “AppDelegate.h”

  NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter];
[defaultCenter addObserver:self                    selector:@selector(networkDidReceiveMessage:)                       name:kJPFNetworkDidReceiveMessageNotification
                      object:nil];

在-dealloc方法中移除通知

  [defaultCenter removeObserver:self                       name:kJPFNetworkDidReceiveMessageNotification
                         object:nil];

实现通知方法

- (void)networkDidReceiveMessage:(NSNotification *)notification {
  NSDictionary *userInfo = [notification userInfo];
  NSString *title = [userInfo valueForKey:@"title"];
  NSString *content = [userInfo valueForKey:@"content"];
  NSDictionary *extra = [userInfo valueForKey:@"extras"];
 //之后解析,根据需求添加自定义方法

3,接到通知之后跳转界面

/** APP已经接收到“远程”通知(推送)   */
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler {
    NSLog(@"\n>>>[Receive RemoteNotification - Background Fetch]:%@\n\n",userInfo);
    completionHandler(UIBackgroundFetchResultNewData);
    self.callid = nil;
    NSString *userdata = [userInfo objectForKey:@"c"];
    NSLog(@"远程推送userdata:%@",userdata);
    if (userdata) {
        NSDictionary*callidobj = [NSJSONSerialization JSONObjectWithData:[userdata dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableLeaves error:nil];
        NSLog(@"远程推送callidobj:%@",callidobj);
        if ([callidobj isKindOfClass:[NSDictionary class]]) {
            self.callid = [callidobj objectForKey:@"callid"];
        }
    }
    //JPUSH
    [JPUSHService handleRemoteNotification:userInfo];
    NSLog(@"iOS7及以上系统,收到通知:%@", [self logDic:userInfo]);
    NSString *string=[userInfo objectForKey:@"strJpushType"];
    //跳转到头条(例)
    if ([string integerValue] ==1) {
        YMToutiaoViewController *vc = [[YMToutiaoViewController alloc] init];
        vc.lineId=userInfo[@"strJPushId"];
        vc.lineName=userInfo[@"strJpushTitle"];
        vc.isPush=@"1";
        UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:vc];
        [self.window.rootViewController presentViewController:nav animated:YES completion:^{
        }];
    }

    if ([[UIDevice currentDevice].systemVersion floatValue]<10.0 || application.applicationState>0) {
    //某一界面添加通知
        //        [rootViewController addNotificationCount];
    }
    completionHandler(UIBackgroundFetchResultNewData);
}
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Android 使用极光推送自定义消息打造个性的消息推送效果

极光推送,是一个面向普通开发者开放的,免费的第三方消息推送服务。本篇博客将结合案例介绍极光推送自定义消息的使用方法,利用自定义消息实现项目中特定的消息推送需求。
  • LeoLeoHan
  • LeoLeoHan
  • 2015-09-03 16:41
  • 10228

极光推送—自定义消息

极光推送API:http://docs.jpush.cn/display/dev/Push+API+v2 这是V2版本了,现在还能用段时间。 普通推送在前一篇讲过了,地址:http://blog.cs...
  • z5976749
  • z5976749
  • 2015-12-03 18:13
  • 4522

iOS极光推送(接收后台消息和自定义消息)

1.极光推送包括:APNs推送,JPush应用内消息。JPush 代理开发者的应用(需要基于开发者提供的应用证书),向苹果 APNs 服务器推送。由 APNs Server 推送到 iOS 设备上。J...
  • shengdaVolleyball
  • shengdaVolleyball
  • 2016-07-29 18:40
  • 5763

Android之极光推送发送自定义消息

Android端实现主要代码: import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConn...
  • molashaonian
  • molashaonian
  • 2016-01-10 22:27
  • 6112

[android]JPush自定义通知栏

自定义通知栏 先自定义Receiver private static final String TAG = "MyReceiver"; @Override public void onRec...
  • tiramisu_ljh
  • tiramisu_ljh
  • 2017-04-17 09:46
  • 1262

IONIC项目JPUSH消息推送IOS集成

1.JPush集成到IONIC项目 参考地址 2.Services.js新增factory angular.module('starter.services', []) .factory('Push...
  • nobmr
  • nobmr
  • 2016-09-19 17:29
  • 2511

JPush实现app推送功能

一个app中使用推送是很常见的需求,如果自己公司去实现一个推送功能是非常麻烦的事,不仅费时费力,做出来也不一定很成熟,所以我们经常是使用第三方的推送,目前常见的第三方推送有极光推送(JPush)、百度...
  • qq379454816
  • qq379454816
  • 2015-12-31 09:56
  • 1682

iOS极光推送(接收后台消息和自定义消息)

1.极光推送包括:APNs推送,JPush应用内消息。JPush 代理开发者的应用(需要基于开发者提供的应用证书),向苹果 APNs 服务器推送。由 APNs Server 推送到 iOS 设备上。J...
  • shengdaVolleyball
  • shengdaVolleyball
  • 2016-07-29 18:40
  • 5763

Android极光推送自定义通知问题

private void showInspectorRecordNotification() { RemoteViews customView = new RemoteViews(co...
  • yaoliangjun306
  • yaoliangjun306
  • 2016-05-06 11:26
  • 7839

iOS集成极光推送 通知 和 自定义消息

支持的版本 r1.2.5 以后。 功能说明 只有在前端运行的时候才能收到自定义消息的推送。 从jpush服务器获取用户推送的自定义消息的内容、标题、附件字段等。 实现方法...
  • qq_27247497
  • qq_27247497
  • 2016-06-07 15:47
  • 8804
    个人资料
    • 访问:43289次
    • 积分:1399
    • 等级:
    • 排名:千里之外
    • 原创:98篇
    • 转载:8篇
    • 译文:0篇
    • 评论:15条
    最新评论