在带有FCM的iOS上使用Rich Push通知中的数据 [英] Using Data in Rich Push notification on iOS with FCM

查看:215
本文介绍了在带有FCM的iOS上使用Rich Push通知中的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题可能不好,但我找不到任何答案,我迷路了...

My question might be bad, but I can't find any answer anywhere, I'm lost...



所以我想要在iOS 10 +中显示带有漂亮图像的丰富通知。


So I want to display a rich notification with a nice image in iOS 10+.

为此,我使用FCM和UNNotificationServiceExtension,如果我理解正确,应该得到数据有效负载,找到图像URL并在修改UNNotificationContent之前加载它。

For this I'm using FCM and an UNNotificationServiceExtension which, if I understood correctly, should get the Data payload, find the image URL and load it before modifying the UNNotificationContent.

我遇到的问题是我无法掌握这个数据。

The issue I have is that I can't get a hold of this "data".

我发送给FCM的内容如下:

What I'm sending to FCM is the following :

{
"to": "device_token",
"content_available": true,
"mutable_content": true,
"badge" : 9,
"notification": {
    "title": "You still need the iPhone ?",
    "body": "Give it back if you finished you tests !"
},
"data": {
    "message": "test !",
    "mediaUrl": "http://usr.audioasylum.com/images/2/20352/Cat_and_rose.jpg"
},
"priority": "high"
}

我在手机中收到的是:

{
aps =     {
    alert =         {
        body = "Give it back if you finished you tests !";
        title = "You still need the iPhone ?";
    };
    "content-available" = 1;
    "mutable-content" = 1;
};
"gcm.message_id" = "0:1489054783357873%1ee659bb1ee659bb";
mediaUrl = "http://usr.audioasylum.com/images/2/20352/Cat_and_rose.jpg";
message = "Offer!";
}

根据我的理解,mediaURL和消息应以aps结尾而不是在外面,这就是我无法在扩展中找到它们的原因。

As I understand it, the mediaURL and message should end up in "aps" and not outside, which is why I can't find them in the extension.

在扩展程序中我得到:(为了更具可读性,我将它拆分为昏迷状态)

And inside the extension I get : (I split it on coma for more readability)

<UNNotificationRequest: 0x117d3c170;
identifier: FDC13B60-FE5A-40C6-896D-06D422043CCE
content: <UNNotificationContent: 0x117d3a650; title: You still need the iPhone ?
subtitle: (null)
body: Give it back if you finished you tests !
categoryIdentifier: 
launchImageName: 
peopleIdentifiers: ()
threadIdentifier: 
attachments: ()
badge: (null)
sound: (null)
hasDefaultAction: YES
shouldAddToNotificationsList: YES
shouldAlwaysAlertWhileAppIsForeground: NO
shouldLockDevice: NO
shouldPauseMedia: NO
isSnoozeable: NO
fromSnooze: NO
darwinNotificationName: (null)
darwinSnoozedNotificationName: (null)
trigger: <UNPushNotificationTrigger: 0x117d3fe90; contentAvailable: YES
 mutableContent: YES>>

问题是我如何用FCM发送信息,或者我检索它们的方式?也许这就是我对待他们的方式?

Is the problem how I send information with FCM, or the way I retrieve them? Maybe it's the way I treat them ?

一如既往,感谢您的帮助!

As always, thanks for the help!

编辑:添加代码对于接收者(这只是扩展中的打印)

Edit : Added code for the receiver (which is just a print in the extension)

@interface NotificationService ()

@property (nonatomic, strong) void (^contentHandler)(UNNotificationContent *contentToDeliver);
@property (nonatomic, strong) UNMutableNotificationContent *bestAttemptContent;

@end

@implementation NotificationService

- (void) didReceiveNotificationRequest: (UNNotificationRequest *) request
                    withContentHandler: (void (^)(UNNotificationContent *_Nonnull))contentHandler
{
    self.contentHandler = contentHandler;
    self.bestAttemptContent = [request.content mutableCopy];

    NSLog(@"------------------- %@ -------------------", request);

    // Modify the notification content here...
    self.bestAttemptContent.title = [NSString stringWithFormat:@"%@ [modified]", self.bestAttemptContent.title];
    self.bestAttemptContent.body = [NSString stringWithFormat:@"%@", request.content];
    self.contentHandler(self.bestAttemptContent);
}


推荐答案

我认为你应该检查 self.bestAttemptContent?.userInfo for mediaUrl data。

I think you should check self.bestAttemptContent?.userInfo for mediaUrl data.

这篇关于在带有FCM的iOS上使用Rich Push通知中的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆