Is it possible to send an Apple-specific tag in an Azure NotificationHub notification custom template? I would like to send "content-available":1 to an app without switching the server to send native notifications, but I can't figure out how.
I have an iOS app using Azure Notification Hub's custom templates to send push notifications.
My template works well, until now, when I have a new type of push message where I want the app to fetch info in the background.
I know how to do this on native iOS. If I subscribe to native notifications in my app and test send this as an apple native notification from Azure:
{"aps":{ "content-available":1} [ other parameters...] }
Then the application (didReceiveRemoteNotification, fetchCompletionHandler) function gets called in my App delegate, and I can use the other parameters from the native notification to get the info, even if the app is closed or in the background.
I have two problems trying to do this in a template though. First, I can't figure out where to put the content-available parameter in the custom template.
Second, I can't subscribe to a template if I mention that parameter because "content-available" has a "-".
MyHub!.registerTemplateWithDeviceToken(mobiledeviceToken!, name: "none", jsonBodyTemplate: "{\"aps\": {\"alert\":\"$(message)\",\"content-available\":\"$(content-available)\"}", expiryTemplate: "", tags: tags)
I get this error:
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.
How can I send this parameter in a custom template, so that an iOS app can see it, and how do I subscribe to that template?
Or, do I have to switch to native notifications?
It looks like you should use \"#(content_available)\"
instead of \"$(content-available)\"
. Notice that "-" is not alphanumeric character and also "#" will result "content-available":1
appears in actual payload while "$" would make "content-available":"1"
which you don't want.
Here you can find a nice article about NH templates.