解决方案 »

  1.   

    说的具体点吧,送ipad还是现金?什么触发?推送什么内容?
      

  2.   


    自己在网上看了一下这个
    http://www.iteye.com/topic/1130630就是类似苹果给手机发送的推送,内容随便
      

  3.   

    既然你都看到相关文章,为何还在这边问呢?
    这里也是只能给你思路而已,具体代码要自己写的原理无非就是建立一个连接(socket类似),从服务器向设备发送字节,设备端接收后怎么处理都可以——直接显示、弹出窗口、通知、闪动提醒等等做法有两种
    1.服务器作为服务端,各种设备作为客户端,建立长连接,服务器依据触发条件发送,做法有点像聊天室
    2.反向思维,各种设备作为服务端(没写错,是服务端),向服务器登录并记下其监听ip/port(登录是不一定就发送,目的只是提交在线状态),服务器依据触发条件另外运行客户端程序向所有登录的设备各自提交连接请求,连接成功就发送
      

  4.   

    $fp = stream_socket_client(“ssl://gateway.sandbox.push.apple.com:2195″, $err, $errstr, 60,  
      
    STREAM_CLIENT_CONNECT, $ctx); 
    关键是这个。app要向apple的服务器注册接收通知,注册后,PHP向apple的服务器发送消息后,apple的服务器完成推送。
    而不是PHP直接推送到app里。
      

  5.   


    问题就是这个,$deviceToken= '5a25d318035c3be9c2ca00572b81463c73c433aea6c738540d46db6a64f70125';
    //$deviceToken=$_REQUEST["token"];
    //推送方式,包含内容和声音$body = array("aps" => array("alert" => '推送测试',"badge" => 11,"sound"=>'default'));//创建数据流上下文对象$ctx = stream_context_create();//设置pem格式文件
    //$pem = dirname(__FILE__) . '/' . 'server_certificates_bundle_sandbox.pem';
    $pem = "server_certificates_bundle_sandbox.pem"; 
    //echo $pem;
    //设置数据流上下文的本地认证证书stream_context_set_option($ctx,"ssl","local_cert", $pem); 
    $pass = "";
    //设置数据流上下文的密码
    stream_context_set_option($ctx, 'ssl', 'passphrase', $pass);  //产品发布APNS服务器,gateway.push.apple.com//测试APNS服务器,gateway.sandbox.push.apple.com//socket通讯
    $fp = stream_socket_client("ssl://gateway.push.apple.com:2195", $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx); if (!$fp) {echo "连接苹果服务器失败.";return;}print "连接苹果服务器OK\n";//载荷信息,JSON编码$payload = json_encode($body); //构建发送的二进制信息$msg = chr(0) . pack("n",32) . pack("H*", str_replace(' ', " ", $deviceToken)). pack("n",strlen($payload)) . $payload; echo "发送消息:" . $payload ."\n";fwrite($fp, $msg);fclose($fp);
    现在浏览器打开,直接显示连接不了苹果服务器...
      

  6.   

    也就是说socket 通讯没成功 ,不知道什么情况
      

  7.   

    浏览器访问的是这个:https://gateway.push.apple.com:2195/
    程序里是ssl协议。
    devicetoken和证书账号密码你都有了么?
      

  8.   

    token 跟帐号密码都有的,这个是ios端传给我的