我试图从CCS获得receipt
,但我还是不能。
以下是我正在做的事情:
我有一个go
脚本:
package main
import (
"fmt"
"github.com/brunohenrique/go-gcm/ccs"
)
var (
user = struct {
gcmToken string
}{"mg0xe56LfjE:APA91bFHtHVQt85iNgyzTeDowovIGPAD_NbBjURppy1LgV9_oaM2R_9zn1fDXNuEeOoALTj7F8e8JmNPI3Md-CbbgTxdvxVrONFVfGz2dOujsaGkZjEhJcBH8sWvRNYZNIp2j2QliAEX"}
)
func main() {
con := connect()
// Sends a message
con.Send(&ccs.OutMsg{
To: user.gcmToken,
ID: "m-1366082849205",
Notification: map[string]interface{}{
"title": "Hey!",
"body": "There",
"sound": "default",
},
TimeToLive: 600,
DeliveryReceiptRequested: true,
DelayWhileIdle: true,
})
// Listen to messages
for {
m, err := con.Receive()
if err != nil {
fmt.Printf(">>> Err: %+v \n", err)
}
go func(m *ccs.InMsg) {
fmt.Printf(">>> InMsg: %+v \n", m)
}(m)
}
}
当我运行脚本时,一切似乎都没问题,但没有回复消息:
这就是我收到通知时我正在做的事情:
我做错了什么或遗失了什么?
答案 0 :(得分:1)
感谢您在iOS上尝试GCM。 不幸的是,目前iOS上的显示通知无法使用送达回执。
答案 1 :(得分:0)
不确定您是否在Android或iOS上尝试此操作,因为它适用于Android,但它并不总是适用于iOS。
iOS的送达回执不适用于请求中的notification
参数。我能够让它用于普通的data
消息,即有效载荷
{
"to" : <reg id>,
"data" : {
"hello" : "world",
"id" : 123
}
}
但如果我将notification
有效负载添加到上面的有效负载中,它就无法工作。
我认为由于需要通过APNS发送notification
有效负载消息,因此无法知道消息是否已发送,因为APNS未返回任何结果。
对于否 notification
消息,因为仅当应用程序位于前台时才会收到消息,因此他们可以验证消息是否已发送。