个推发送消息各字段在系统状态栏显示的信息,点击消息图标激活应用传递的信息,应用在线收到的透传消息信息

简介: 个推发送消息各字段在系统状态栏显示的信息,点击消息图标激活应用传递的信息,应用在线收到的透传消息信息

个推测试透传消息,个推网站测试只支持透传消息

创建推送—透传消息

目标平台:iOS开发环境

透传内容

描述:测试页面跳转4

消息内容:{“tk1”:”tv1”,”tk2”:”tv2”}

定速推送:关闭

展示条件:无

APN参数设置

模式选择:iOS设置

content-available:0 (app在线推送透传消息,不在线就推送apns消息)

title: test444

body: body444

badge:1

sound:默认

payload:与消息内容一致

iOS多媒体推送:否

category:category1

title-loc-key:title-loc-key1

title-loc-args:title-loc-args

loc-args:loc-args

loc-key:loc-key

category:


title-loc-key:


title-loc-args:


loc-args:


loc-key:


launch-image:select

subtitle-loc-key1:subtitle-loc-key1

subtitle-loc-args:subtitle-loc-args1

subtitle:subtitle

apns-collapse-id:apns-collapse-id1

action-loc-key:action-loc-key1

目标选择:全部用户

推送设置

推送方式:即使

消息有效期:是

有效时长:2小时,该时间段内CID在线过的用户均可收到通知。(0-72小时内的正整数)


一:用户不在线:用户在手机系统消息栏可以看到信息:

艺享优选

test444 [modified]

subtitle

body444

只所以看到modified是因为这个复制的个推测试消息。只能看到这些字段,其它推送的消息字段。

二:点击系统的推送消息激活app,在didFinishLaunchingWithOptions函数通过NSDictionary* message = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];获得的消息日志文件记录的日记如下:

AppDelegate.m:AppDelegate.m:-[AppDelegate application:didFinishLaunchingWithOptions:]:37 Verbose:didFinishLaunchingWithOptions  message:{    "_ge_" = 1;    "_gmid_" = "GT_0824_32bba9e07271dbcfd39a3dc85d014fa2:b0777f08-24aa-16567d8f1d0-1466927070:4790715966c94d93e84182fbfce36182";    "_gurl_" = "sdk.open.extension.getui.com:8123";    aps =     {        alert =         {            "action-loc-key" = "action-loc-key1";            body = body444;            "launch-image" = select;            "loc-args" =             (                "loc-args"            );            "loc-key" = "loc-key";            subtitle = subtitle;            "subtitle-loc-args" =             (                "subtitle-loc-args1"            );            "subtitle-loc-key" = "subtitle-loc-key1";            title = test444;            "title-loc-args" =             (                "title-loc-args"            );            "title-loc-key" = "title-loc-key1";        };        badge = 1;        category = category1;        "mutable-content" = 1;        sound = default;    };    payload = "{\"tk1\":\"tv1\",\"tk2\":\"tv2\"}";}

可见,点击消息激活应用时,只传递过来部分参数,并费所有字段,至少body的键值对就没有传递过来,由于设置的payload的属性是与消息内容一致,所以通过payload字段间接获取到了body的键值对。

当然你设置payload为自定义(例如设置内容如:jump)。这是的日志变成:

AppDelegate.m:AppDelegate.m:-[AppDelegate application:didFinishLaunchingWithOptions:]:37 Verbose:didFinishLaunchingWithOptions  message:{
    "_ge_" = 1;
    "_gmid_" = "GT_0824_02819c75c17adf33e6faa43842072025:b0777f08-24aa-16567d8f1d0-1455623540:4790715966c94d93e84182fbfce36182";
    "_gurl_" = "sdk.open.extension.getui.com:8123";
    aps =     {
        alert =         {
            "action-loc-key" = "action-loc-key1";
            body = body2;
            "launch-image" = select;
            "loc-args" =             (
                "loc-args"
            );
            "loc-key" = "loc-key";
            subtitle = subtitle;
            "subtitle-loc-args" =             (
                "subtitle-loc-args1"
            );
            "subtitle-loc-key" = "subtitle-loc-key1";
            title = test2;
            "title-loc-args" =             (
                "title-loc-args"
            );
            "title-loc-key" = "title-loc-key1";
        };
        badge = 1;
        category = category1;
        "mutable-content" = 1;
        sound = default;
    };
    payload = jump;
}

三:应用在线,收到透传消息的消息,系统栏不显示推送的消息:

>>>[GexinSdk ReceivePayload]:taskId=GT_0824_6df34b352b517e4766883c2b3cf138bd,messageId:28ae7ef0-bc-16567df2b2d-1482748620,payloadMsg:{"tk1":"tv1","tk2":"tv2"}

可见只收到了body的键值对,其它设置的字段都没有收到。

点击系统消息进入对应app页面的基本逻辑可以通过下面的代码实现,具体是自己是进入一个不需要登录的页面还是自动登录进入消息页面那就自己实现了。

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

    // [2-EXT]: 获取启动时收到的APN
    NSDictionary* message = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
    FLDDLogVerbose(@"didFinishLaunchingWithOptions  message:%@", message);
    if (message) {
        NSString *payloadMsg = [message objectForKey:@"payload"];
        NSString *record = [NSString stringWithFormat:@"[APN]%@, %@", [NSDate date], payloadMsg];
        //如何跳转页面自己添加代码
//        
//        self.window.rootViewController = self.viewController;
    }

    return YES;
}

四:应用在线,系统栏不显示推送的消息。若想显示也可以,就是把需要显示的标题和内容放在body的键值对里,收到透传消息,弹出本地消息。弹出本地消息的代码如下,注意,一般要把重复间隔设置为0,不然你的应用每天这个时间就会显示通知,当然你有像这样的需求是个例外:

        UILocalNotification *notification = [[UILocalNotification alloc] init];

        if (notification != nil) {
            // 设置推送时间
            notification.fireDate = [NSDate date];
            // 设置时区
            notification.timeZone = [NSTimeZone defaultTimeZone];
            // 设置重复间隔
            notification.repeatInterval = 0;
            // 推送声音
//            notification.soundName = UILocalNotificationDefaultSoundName;

//            NSArray *array=[NSArray arrayWithObjects:@"order_music_texi.mp3",@"order_music_new.mp3",@"order_music_comfortable.mp3",@"order_music_luxury.mp3",@"order_music_commicail.mp3", nil];
            NSArray *arrayBody=[NSArray arrayWithObjects:@"您有一个出租车订单",@"您有一个新能源订单",@"您有一个舒适型订单",@"您有一个豪华型订单",@"您有一个商务型订单", nil];
//            notification.soundName = array[[[newDict valueForKey:@"serviceType"] intValue] - 1];
//            // 推送内容
            notification.alertBody = arrayBody[[[newDict valueForKey:@"serviceType"] intValue] - 1];
            //显示在icon上的红色圈中的数子
            notification.applicationIconBadgeNumber =0;
            //添加推送到UIApplication
            UIApplication *app = [UIApplication sharedApplication];

                [app scheduleLocalNotification:notification];
        }

个推测试网站,发送iOS透传消息时,可以选择特定用户,需要上传CID列表。个推开放平台上特定用户推送时上传的用户列表是怎样的格式是:上传的是txt文件,一行一个clientid,回车换行。具体见这个例子,你把里面那行clientid换成自己的就可以,注意:要保持纯文本格式,保留换行符。个推cid列表文件


目录
相关文章
|
Go Android开发
autojs发送通知修改图标
牙叔教程 简单易懂
682 0
|
3月前
【Azure 事件中心】如何查看事件中心的消息中具体报文内容呢?
【Azure 事件中心】如何查看事件中心的消息中具体报文内容呢?
|
6月前
|
Windows
微信消息实现自动推送--方式一 成功啦 进来学
微信消息实现自动推送--方式一 成功啦 进来学
624 1
|
6月前
如何解决由引起的IQKeyboardManager部分页面返回的键盘高度比实际小或最后收到键盘隐藏通知却显示了键盘问题
如何解决由引起的IQKeyboardManager部分页面返回的键盘高度比实际小或最后收到键盘隐藏通知却显示了键盘问题
101 0
|
小程序 开发工具 开发者
微信小程序订阅消息点了 “总保持以上选择、全部拒绝,不在询问” 无法再次弹出
微信小程序订阅消息点了 “总保持以上选择、全部拒绝,不在询问” 无法再次弹出
1351 0
|
微服务
微信授权回调时,回调地址中原有参数丢失
微信授权回调时,回调地址中原有参数丢失
702 0
微信授权回调时,回调地址中原有参数丢失
|
安全 开发者
3. 该微信用户未开启“公众号安全助手”的消息接收功能,请先开启后再绑定
公众号管理员添加开发者时,提醒:该微信用户未开启“公众号安全助手”的消息接收功能,请先开启后再绑定
231 0
|
移动开发 JavaScript HTML5
|
JavaScript 前端开发 数据安全/隐私保护
聊天信息框显示消息
本文讲解如何制作,可以提交信息的聊天框,并且可以删除已经发布的聊天信息。
111 0
聊天信息框显示消息
|
Android开发
移动应用程序设计基础——点菜单列表实现2.0(实现短信接受以及服务与广播的使用)
1.接收短信、开启和停止服务的界面布局。 2.实现短信接收服务; 3.接收广播信息。 具体功能为: 1、 实现短信金额通知功能。在订餐程序,取消自动登录功能,并在注册界面增加开启和停止短信通知服务按钮,开启短信按钮点击提交后显示短信服务启动成功对话框,短信通知服务开启后,用户点菜后,将“您点的菜品总价值***元”发到注册手机上。停止短信按钮点击提交后现实短信服务停止对话框; 2、 实现用户点餐广播功能。用户点菜后,所点菜品及用户名以广播方式通知,广播接收到后,打开一个新的页面,以列表的方式追加一条记录,显示
175 0
移动应用程序设计基础——点菜单列表实现2.0(实现短信接受以及服务与广播的使用)