Push notification 推送通知(Android和iOS)-Appcelerator

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

如何让我的应用程序(Android和iOS)从控制面板或Web服务自动接收推送通知。。。我找到的唯一方法是在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 );
//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的代币一样