标题未显示在通知中

时间:2016-05-12 15:26:59

标签: php android google-cloud-messaging

这是我发送通知的代码:

$msg = array
(
    "title" => "Portugal vs. Denmark",
    "message" => "5 to 1"
);

$fields = array (
    "to" => $deviceToken,
    "data" =>  $msg
);

$headers = array
(
    'Authorization: key=' . API_ACCESS_KEY,
    'Content-Type: application/json'
);

$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://android.googleapis.com/gcm/send' );
curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $fields ) );
$result = curl_exec($ch );
curl_close( $ch );

我收到"5 to 1"消息但未显示标题"Portugal vs. Denmark"

有没有人有想法?

data字段中,我尝试alertsubtitle并且他们没有改变任何内容。

感谢' S

修改

我有通知的屏幕截图

2 个答案:

答案 0 :(得分:0)

尝试将以下json作为paylod发送。如果它工作,问题可能在array()函数上。它应该创建一个字典,而不是我相信的数组

{ 
   "data": {
   "score": "5x1",
   "title" : "portugal vs Denmark",
   "message":"5 to 1"
   },
   "to": "YOUR DEVICE TOKEN",
}

编辑:

查看此伪代码,并与您的代码进行比较。您必须从推送通知中的捆绑数据中获取字段。

@Override
    public void onMessageReceived(String from, Bundle data) {
        String message = data.getString("message");
        String title = data.getString("title");
        String score = data.getString("score");

///...

NotificationCompat.Builder notificationBuilder = new     NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.ic_stat_ic_notification)
            .setContentTitle(title)
            .setContentText(message)
            .setAutoCancel(true)
            .setSound(defaultSoundUri)
            .setContentIntent(pendingIntent);

//....
}

答案 1 :(得分:0)

这是相当遥远的,但你可以改变消息'对于像myinfo' myinfo'或其他东西,然后在客户端提取它(进行必要的更改)。 我在思考'留言'可能会根据标准解释,其余部分将被忽略。

还尝试在Android工作室上显示内容,这样您就可以看到自己是否真正在客户端获得了标题。