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;

        }

     

     

  • 相关阅读:
    Hibernate中的HQL
    hibernate配置数据库连接池三种用法
    Hibernate的延迟检索和立即检索
    Hibernate关系映射中的注解
    Hibernate的多种关系映射(oto、otm、mtm)
    自然主键和代理主键的区别
    Hibernate的xml方法配置和操作代码
    Hibernate简介
    VirtualBox从USB设备(PE)启动图文教程
    属性动画
  • 原文地址:https://www.cnblogs.com/zinging/p/15632285.html
Copyright © 2011-2022 走看看