在Android/iOS的PHP项目中,要发送推送通知的数据数组,可以使用以下格式:
$data = array(
"title" => "推送标题",
"body" => "推送内容",
"custom_data" => array(
"key1" => "value1",
"key2" => "value2"
)
);
其中,title
表示推送标题,body
表示推送内容,custom_data
是一个自定义数据字段,用于传递额外的信息。
在Android平台上,可以使用Firebase Cloud Messaging(FCM)来发送推送通知。你可以使用Firebase提供的SDK在你的PHP代码中集成FCM,并使用以下代码发送推送通知:
$apiKey = "YOUR_API_KEY";
$registrationIds = array("DEVICE_REGISTRATION_TOKEN");
$headers = array(
"Authorization: key=" . $apiKey,
"Content-Type: application/json"
);
$data = array(
"data" => $data,
"registration_ids" => $registrationIds
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://fcm.googleapis.com/fcm/send");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
在上面的代码中,你需要将YOUR_API_KEY
替换为你的Firebase项目的服务器密钥,DEVICE_REGISTRATION_TOKEN
替换为接收推送通知的设备的注册令牌。
在iOS平台上,可以使用苹果的推送通知服务(Apple Push Notification Service,简称APNs)来发送推送通知。你可以使用苹果提供的PHP库来发送推送通知,以下是示例代码:
$apnsHost = 'gateway.sandbox.push.apple.com';
$apnsPort = 2195;
$apnsCert = 'PATH_TO_YOUR_CERTIFICATE.pem';
$apnsPassphrase = 'YOUR_CERTIFICATE_PASSPHRASE';
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', $apnsCert);
stream_context_set_option($ctx, 'ssl', 'passphrase', $apnsPassphrase);
$apnsSocket = stream_socket_client(
'ssl://' . $apnsHost . ':' . $apnsPort,
$error,
$errorString,
60,
STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT,
$ctx
);
$payload = array(
'aps' => array(
'alert' => array(
'title' => $data['title'],
'body' => $data['body']
),
'sound' => 'default'
),
'data' => $data['custom_data']
);
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen(json_encode($payload))) . json_encode($payload);
fwrite($apnsSocket, $apnsMessage);
fclose($apnsSocket);
在上面的代码中,你需要将PATH_TO_YOUR_CERTIFICATE.pem
替换为你的APNs证书文件的路径,YOUR_CERTIFICATE_PASSPHRASE
替换为你的证书密码,$deviceToken
替换为接收推送通知的设备的令牌。
以上代码示例中,并没有提及腾讯云的相关产品,如果你需要推送通知功能,可以使用腾讯云的移动推送服务(https://cloud.tencent.com/product/umeng)来实现,它提供了全面的移动推送解决方案,并支持Android和iOS平台。
请注意,以上代码示例仅供参考,实际使用时需要根据具体情况进行适当修改和调整。
领取专属 10元无门槛券
手把手带您无忧上云