gpt4 book ai didi

ios - FCM-如何区分它是在用户单击通知时从 Firebase 控制台发送还是从 HTTP 发送

转载 作者:行者123 更新时间:2023-11-28 23:56:57 25 4
gpt4 key购买 nike

我设法设置了所有内容,我可以从方法 1(Firebase 控制台)或方法 2(使用 Javascript 和 Ajax 的 HTTP 发送)发送通知

现在消息发送后,当用户点击通知时,如何知道它来自方法 1(Firebase 控制台)还是方法 2(使用 javascript 和 Ajax 的 HTTP 发送)?

原因是我希望将用户重定向到应用程序的不同页面。

我可以使用这个标题吗?方法2消息总是有一个静态标题,如果是这样我该怎么做,请帮助。

  1. Firebase 控制台。

  2. HTTP 发送

    function post() {

    $.ajax({
    type : 'POST',
    url : "https://fcm.googleapis.com/fcm/send",
    headers : {
    Authorization : 'key=' + '<%=sKey%>'
    },
    contentType : 'application/json',
    dataType: 'json',
    data: JSON.stringify({

    "to": "<%=sToWhichDevice%>",
    "priority": "high",
    "notification": {
    "sound": "defaultSound",
    "title":"<%=sTitle%>",
    "body":"<%=sBody%>"
    }
    }),

    success : function(response) {
    console.log(response);
    },
    error : function(xhr, status, error) {
    console.log(xhr.error);
    }
    });
    }
    window.onload = post();
  3. 检测用户何时点击通知

    //=== Handle notification messages after display notification is tapped by the user.
    - (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response

    NSDictionary *userInfo = response.notification.request.content.userInfo;

    //==== HOW DO I DIFFERENTIATE IT IS SEND from FireBase Console or HTTP Javascript Ajax send?
    if (userInfo[kGCMMessageIDKey]) {

    NSLog(@" **5 : Notification from Firebase Console. Message ID: %@",
    }else{
    NSLog(@" **5** : Notification from HTTP Ajax");

    }

    completionHandler();
    }

最佳答案

为了后代,我会将我的评论转化为完整的答案。

FCM 推送通知负载有几个预定义键,iOS 需要这些键,以便系统可以自动在设备上显示通知(例如标题、消息、图标等)。您必须记住,作为 iOS 开发人员,在创建自定义推送通知 UI 时您没有太多选择(但这是另一个话题)。

另一方面,FCM(以及几乎所有其他推送通知服务)提供了一种通过推送通知发送自定义数据的方法。对于 FCM,您可以使用 data 键来定义将在推送通知中传递的键值对列表。

现在就实现而言,您可以选择发送什么内容,正如我建议您可以输入以下内容:

"data":{
"sent-from" : "MyAwesomeSite",
"why" : "Because I have to!",
"when" : "ASAP"
}

现在由您决定添加什么作为键值对,但请记住,有效载荷的大小是有限的,并且存在操作系统限制,我还看到推送通知服务提供商强制执行的限制。

关于ios - FCM-如何区分它是在用户单击通知时从 Firebase 控制台发送还是从 HTTP 发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50965150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com