0
如何讓我的應用程序(Android和iOS)從控制面板或Web服務自動接收推送通知...我發現的唯一方法是在Appcelerator面板上,並不是自動的...推送通知(Android和iOS) - Appcelerator
我希望,例如,當數據庫中有更新時,推送出現在用戶的手機中......你怎麼能這樣做?
另一件事是,我怎麼能做到這一點通用的Android和IOS?是否有任何模塊或視頻課程教導要做到這一點?
如何讓我的應用程序(Android和iOS)從控制面板或Web服務自動接收推送通知...我發現的唯一方法是在Appcelerator面板上,並不是自動的...推送通知(Android和iOS) - Appcelerator
我希望,例如,當數據庫中有更新時,推送出現在用戶的手機中......你怎麼能這樣做?
另一件事是,我怎麼能做到這一點通用的Android和IOS?是否有任何模塊或視頻課程教導要做到這一點?
這是我的PHP的多平臺推射擊的一個組成部分。
// iOS
$apnsHost = 'gateway.push.apple.com';
$apnsPort = 2195;
$apnsCert = 'apns-prod.pem';
//
$abrirPush = 1;
$mensagem = array(
"id_push" => $id_push,
"id_empresa" => $id_empresa,
"abrir" => $abrirPush
);
$mensagem = json_encode($mensagem);
$arr['aps'] = array(
'alert' => $nome_empresa . ' tem uma mensagem para você' ,
'badge' => 1,
'sound' => 'default',
'body' => $mensagem
);
$payload = json_encode($arr);
// Abre Conexão iOS
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);
// Android
$arrayAndroid = Array();
// Search for iOS or Android Device
for ($i = 0; $i < count($montaArray); $i++){
$pegaToken = $montaArray[$i];
$contaToken = strlen($pegaToken);
if ($contaToken < 70){
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $montaArray[$i])) . chr(0) . chr(strlen($payload)) . $payload;
fwrite($apns, $apnsMessage);
}else{
/// PUSH ANDROI ////
array_push($arrayAndroid, $montaArray[$i]);
}
}
fclose($apns);
// API access key from Google API's Console (Server KEY)
define('API_ACCESS_KEY', 'KEY_HERE');
// prep the bundle
$msg = array
(
'message' => 'Tem uma mensagem para você',
'title' => $nome_empresa,
'payload' => $mensagem,
'vibrate' => 1,
'sound' => 1,
'largeIcon' => 'large_icon',
'smallIcon' => 'small_icon'
);
$fields = array
(
'registration_ids' => $arrayAndroid,
'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);
print $result;
curl_close($ch);
請注意,蘋果公司並不像谷歌那樣合併一批代幣。由於Android的令牌大於iOS的令牌,因此我會計算它的長度以知道它是哪個令牌。 $montaArray
來自我的數據庫,其中存儲了所有令牌
謝謝道格拉斯! –
我編輯了我的答案。 Checkit =) –