如果包含通知有效负载,则GCM ios无效

时间:2015-08-19 20:04:34

标签: php ios curl google-cloud-messaging apple-push-notifications

以下代码用于从php脚本向我的ios应用程序发送消息:

$url = 'https://android.googleapis.com/gcm/send';

$fields = array(
    'registration_ids' => $devices,
    'data' => array("message"=>"hi")
);
$headers = array(
    'Authorization: key=' . $apiKey,
    'Content-Type: application/json'
);

$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, $url );
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 );

此代码功能正常但我希望能够发送推送通知而不仅仅是消息。但是,当我按照Google云消息传递文档中的描述添加通知有效负载时,方法应用程序:didReceiveRemoteNotification:fetchCompletionHandler:不会被调用。

$fields = array(
    'registration_ids' => $devices,
    'content_available' => true ,
    'notification' => array("title" => "title", "body"=>"body"),
    'data' => array("message"=>"hi")
);

我有一个apns开发证书,我在代理中注册了我的app通知。我也成功从谷歌获得了一个设备令牌。非常感谢您的帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

您是否正在使用Apple Watch进行测试。 title中的notification密钥仅用于根据此处https://developers.google.com/cloud-messaging/server-ref的监视。

您应该只在body词典中使用notification键,然后查看它是否有效。