繁体   English   中英

如何格式化 FCM json 以获取后台通知 iOS

[英]How to format FCM json for background notifications iOS

我正在努力寻找参考资料,讨论如何准确地构建我的消息.json以用于 FCM 中的背景通知。 我尝试了各种配置,但现在我有这个:

const message = {
    notification: {
        title: "Title",
    },
    apns: {
        payload: {
            aps: {
                'contentAvailable': 1
            }
        },
    },
    token: registrationToken,
};

我希望这条消息显示为通知——即让用户看到它——但我也想触发:

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {

}

因此,如果应用程序处于后台模式,我可以执行数据更新。 我可以看到这个通知,但是当通知到达时没有触发 function - 所以不可能刷新数据。 如何格式化我的 FCM .json以启用此功能?

首先,根据苹果文档,您正在使用的关键contentAvailable实际上应该是content-available ,因此如果不修复此问题,则无论如何都不会触发application(_:didReceiveRemoteNotification:fetchCompletionHandler:) function 。

现在,FCM 有一个示例,说明.json文件的外观,因此对于您的数据,它应该是这样的:

const message = {
  "aps" : {
    "alert" : {
      "title" : "Title"
    },
    "badge" : 1,
    "content-available": 1
  },
  "token" : registrationToken
}

现在我猜你想要更多地自定义通知(例如添加正文、副标题等),所以你可以在文章生成远程通知中找到以表格组织的完整键列表。

你有有效载荷和标题,有效载荷应该包含 content_available = 1(不是 contentAvailable,除了你很好)并且标题应该有“apns-push-type”=“background”和“apns-priority”=“5”

public class ApnsConfig {
    @Key("headers")
    private final Map<String, String> headers;
    @Key("payload")
    private final Map<String, Object> payload;
    @Key("fcm_options")
    private final ApnsFcmOptions fcmOptions;
}

苹果文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM