Push notification 推送通知(Android和iOS)-Appcelerator
如何让我的应用程序(Android和iOS)从控制面板或Web服务自动接收推送通知。。。我找到的唯一方法是在Appcelerator面板上,不是自动的 我希望,例如,当数据库中有更新时,推送出现在用户的移动电话中。。。你怎么能做到这一点 另一件事是,我如何才能做到这一点是android和ios通用的?有什么模块或视频课程可以教你这样做吗? 这是我的多平台推送触发php的一部分Push notification 推送通知(Android和iOS)-Appcelerator,push-notification,titanium,appcelerator,appcelerator-titanium,Push Notification,Titanium,Appcelerator,Appcelerator Titanium,如何让我的应用程序(Android和iOS)从控制面板或Web服务自动接收推送通知。。。我找到的唯一方法是在Appcelerator面板上,不是自动的 我希望,例如,当数据库中有更新时,推送出现在用户的移动电话中。。。你怎么能做到这一点 另一件事是,我如何才能做到这一点是android和ios通用的?有什么模块或视频课程可以教你这样做吗? 这是我的多平台推送触发php的一部分 // iOS $apnsHost = 'gateway.push.apple.com'; $ap
// 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 );
//iOS
$apnsHost='gateway.push.apple.com';
$apnsPort=2195;
$apnsCert='apns-prod.pem';
//
$abrirPush=1;
$mensagem=数组(
“id\u push”=>$id\u push,
“id_empresa”=>$id_empresa,
“abrir”=>$abrirPush
);
$mensage=json_编码($mensage);
$arr['aps']=数组(
“警报”=>$nome_empresa.“紧急措施”,
“徽章”=>1,
“声音”=>“默认值”,
“body”=>$mensage
);
$payload=json_encode($arr);
//阿布雷·康奈科斯
$streamContext=stream_context_create();
stream_context_set_选项($streamContext,'ssl','local_cert',$apnsCert);
$apns=stream_socket_client('ssl://'.$apnsHost'.:'.$apnsPort,$error,$errorString,2,stream_client_CONNECT,$streamContext);
//安卓
$arrayAndroid=Array();
//搜索iOS或Android设备
对于($i=0;$i“我的男人们的生活”,
“title”=>$nome_empresa,
“有效载荷”=>$mensage,
“振动”=>1,
“声音”=>1,
“大图标”=>“大图标”,
“小图标”=>“小图标”
);
$fields=数组
(
“注册ID”=>$arrayAndroid,
“数据”=>$msg
);
$headers=数组
(
“Authorization:key=”.API_ACCESS_key,
'内容类型:应用程序/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\u exec($ch);
打印$result;
卷曲关闭($ch);
请注意,苹果不像谷歌那样将一系列代币组合在一起。由于Android的令牌比iOS的令牌大,我计算它的长度以知道它是哪个令牌。
$montarray
来自存储所有令牌的我的数据库
这是我的多平台推送触发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 );
//iOS
$apnsHost='gateway.push.apple.com';
$apnsPort=2195;
$apnsCert='apns-prod.pem';
//
$abrirPush=1;
$mensagem=数组(
“id\u push”=>$id\u push,
“id_empresa”=>$id_empresa,
“abrir”=>$abrirPush
);
$mensage=json_编码($mensage);
$arr['aps']=数组(
“警报”=>$nome_empresa.“紧急措施”,
“徽章”=>1,
“声音”=>“默认值”,
“body”=>$mensage
);
$payload=json_encode($arr);
//阿布雷·康奈科斯
$streamContext=stream_context_create();
stream_context_set_选项($streamContext,'ssl','local_cert',$apnsCert);
$apns=stream_socket_client('ssl://'.$apnsHost'.:'.$apnsPort,$error,$errorString,2,stream_client_CONNECT,$streamContext);
//安卓
$arrayAndroid=Array();
//搜索iOS或Android设备
对于($i=0;$i“我的男人们的生活”,
“title”=>$nome_empresa,
“有效载荷”=>$mensage,
“振动”=>1,
“声音”=>1,
“大图标”=>“大图标”,
“小图标”=>“小图标”
);
$fields=数组
(
“注册ID”=>$arrayAndroid,
“数据”=>$msg
);
$headers=数组
(
“Authorization:key=”.API_ACCESS_key,
'内容类型:应用程序/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\u exec($ch);
打印$result;
卷曲关闭($ch);
请注意,苹果不像谷歌那样将一系列代币组合在一起。就像Android的代币一样