3

我们目前正在评估Firebase作为未来推送通知服务。 有没有办法向iOS设备发送可操作的通知? 目前我们使用parse来发送推送,我们在有效负载中设置“category”参数,并且通知的其他操作正在工作。 我们尝试在firebase控制台或通过firebase rest api设置此参数,但通知操作不起作用,似乎有效负载与iOS预期不同。如何使用FireBase向iOS发送可执行的通知?

回答

5

谢谢Malik。 FCM似乎将Android特定的“click_action”属性转换为iOS特定的“类别”属性。

我们通过他们的REST API发送Firebase推送通知,它可以很容易地用于邮递员测试。

这里是REST版本:

POSThttps://fcm.googleapis.com/fcm/send

接头:

  • 授权:键= YOUR_FIREBASE_SERVER_KEY
  • 内容类型:应用/ JSON

身体:

{ "notification": { 
    "text": "YOUR_PUSH_TEXT", 
    "click_action":"YOUR_IOS_ACTIONABLE_NOTIFICATION_CATEGORY" 
    }, 
    "to" : "YOUR_PUSH_TOKEN", 
    "data": { 
    "YOUR_CUSTOM_DATA": "DATA" 
    } 
} 
7

当前类别不支持FCM控制台但仍然如果你想测试你可以使用curl post调用和测试。您可以从服务器向您的有效负载添加类别,并使用FCM api将通知推送到iOS。

curl --header "Authorization: key=<YOUR_SERVER_KEY>" --header Content- Type:"application/json" https://fcm.googleapis.com/fcm/send -d "{\"to\":\"Device Token\",\"priority\":\"high\",\"notification\": {\"title\": \"Shift Alert\",\"text\": \"Would you like to accept shift today 11:30 to 13:30 \",\"click_action\":\"INVITE_CATEGORY\"}}" 

授权:键= YOUR_SERVER_KEY 确认这是服务器密钥,其值是在项目设置下你的火力地堡项目控制台>云端通讯可用。 FCM拒绝Android,iOS和浏览器密钥。

INVITE_CATEGORY =您的类别中,您使用您的代码

下面是应答词典,你会得到行动龙头:为答案

{ 
aps =  { 
    alert =   { 
     body = "Would you like to accept shift today 11:30 to 13:30 "; 
     title = "Shift Alert"; 
    }; 
    category = "INVITE_CATEGORY"; 
}; 
"gcm.message_id" = "0:12233487r927r923r7329"; 
} 
+0

有在“内容类型”的要求两种错误的做法的空间,这里的正确版本: '卷曲--header“授权:键= ” --header内容类型: “应用程序/ JSON” https://fcm.googleapis.com/fcm/send -d “{\” 到\ “:\” 设备令牌\ “\ ”优先\“:\ ”高\“,\”通知\ “:{\” 称号\ “:\” 移警报\”,\ “文本\”:\ “你愿意接受轮班今天11:30至13:30 \”,\ “click_action \”:\ “INVITE_CATEGORY \”}}“' – simsimmal

+0

上述解决方案对我无效 – iAviatorJose