zoukankan      html  css  js  c++  java
  • PHP实现IOS消息推送

    转自:https://blog.csdn.net/luomao2012/article/details/77898598

    push.php的代码如下:

    <?php

     

    // 这里是我们上面得到的deviceToken,直接复制过来(记得去掉空格)

    $deviceToken = '740f4707bebcf74f 9b7c25d4 8e3358945f6aa01da5ddb387462c7eaf 61bb78ad';

     

    // Put your private key's passphrase here:

    $passphrase = 'abc123456';

     

    // Put your alert message here:

    $message = 'My first push test!';

     

     

     

    $ctx = stream_context_create();

    stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');

    stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);

     

    // Open a connection to the APNS server

    //这个为正是的发布地址

     //$fp = stream_socket_client(“ssl://gateway.push.apple.com:2195“, $err, $errstr, 60, //STREAM_CLIENT_CONNECT, $ctx);

    //这个是沙盒测试地址,发布到appstore后记得修改哦

    $fp = stream_socket_client(

    'ssl://gateway.sandbox.push.apple.com:2195', $err,

    $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);

     

    if (!$fp)

    exit("Failed to connect: $err $errstr" . PHP_EOL);

     

    echo 'Connected to APNS' . PHP_EOL;

     

    // Create the payload body

    $body['aps'] = array(

    'alert' => $message,

    'sound' => 'default'

    );

     

    // Encode the payload as JSON

    $payload = json_encode($body);

     

    // Build the binary notification

    $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;

     

    // Send it to the server

    $result = fwrite($fp, $msg, strlen($msg));

     

    if (!$result)

    echo 'Message not delivered' . PHP_EOL;

    else

    echo 'Message successfully delivered' . PHP_EOL;

     

    // Close the connection to the server

    fclose($fp);

    ?>

     

    接下来我们访问http://localhost/push/push.php

     

    iphone就会接收到一条推送消息了,如果有问题的话就检查上面的操作步骤,特别是加红的部分

     

    另外去除标记的方法为,在viewDidApper中加入

     

    int badge = [UIApplication sharedApplication].applicationIconBadgeNumber;

        if(badge > 0)

        {

            badge--;

            [UIApplication sharedApplication].applicationIconBadgeNumber = badge;

        }

     

     

  • 相关阅读:
    UVA10740 Not the Best (K短路)
    UVA10967 The Great Escape(最短路)
    UVA 10841 Lift Hopping in the Real World(dijkstra)
    U盘启动的PE系统的制作方法
    让远程桌面支持多用户
    学习的书的下载地址
    刚安装完的vs2008写的ajax应用提示sys未定义
    AS3 Libs
    禁用触发器
    Microsoft .NET 类库开发的设计准则
  • 原文地址:https://www.cnblogs.com/zinging/p/15632285.html
Copyright © 2011-2022 走看看