我可以使用带 "content-available" 的 Azure CustomTemplate 推送通知在后台更新 iOS 应用程序吗?

Can I use Azure CustomTemplate Push notifications with "content-available" to update iOS app in the background?

是否可以在 Azure NotificationHub 通知自定义模板中发送特定于 Apple 的标签?我想将 "content-available":1 发送到应用程序而不切换服务器以发送本机通知,但我不知道该怎么做。

我有一个 iOS 应用程序使用 Azure 通知中心的自定义模板发送推送通知。

我的模板运行良好,直到现在,当我有一种新型的推送消息时,我希望应用程序在后台获取信息。

我知道如何在本机 iOS 上执行此操作。如果我在我的应用程序中订阅本机通知并测试将其作为来自 Azure 的苹果本机通知发送:

{"aps":{ "content-available":1} [ other parameters...] } 

然后在我的 App 委托中调用应用程序 (didReceiveRemoteNotification, fetchCompletionHandler) 函数,我可以使用本机通知中的其他参数来获取信息,即使应用程序已关闭或在后台也是如此。

不过,我在尝试在模板中执行此操作时遇到了两个问题。首先,我想不通w这里把content-available参数放在自定义模板中。

其次,如果我提到该参数,我将无法订阅模板,因为 "content-available" 有一个“-”。

 MyHub!.registerTemplateWithDeviceToken(mobiledeviceToken!, name: "none", jsonBodyTemplate: "{\"aps\": {\"alert\":\"$(message)\",\"content-available\":\"$(content-available)\"}", expiryTemplate: "", tags: tags)

我收到这个错误:

 PM</Detail></Error>" UserInfo={NSLocalizedDescription=Fail to perform registration operation. Response:<Error><Code>400</Code><Detail>Property name is content-available. Only ASCII-7 alphanumeric characters and '_' are permitted in the property name.

如何在自定义模板中发送此参数,以便 iOS 应用可以看到它,以及如何订阅该模板?

或者,我是否必须切换到本机通知?

看起来你应该使用 \"#(content_available)\" 而不是 \"$(content-available)\"。请注意,“-”不是字母数字字符,而且“#”会导致 "content-available":1 出现在实际负载中,而“$”会使 "content-available":"1" 出现在您不想要的位置。

Here 你可以找到一篇关于 NH 模板的好文章。