public function actionApns() { 

        //手机注册时候返回的设备号,在xcode中输出的,复制过来去掉空格
$deviceToken = '7217a01836349b194bf7e55708b8a725aee79e06896f268d125533c48d909ad6';
//刚刚合并pem文件时候自己设置的四个字符的密码
$pass = 'hlf97278292';
//消息内容
$message = 'aaaaaaaaaaaaa!'.time();
//badge,也就是app中得小红点数
//sound,是提示音, default是代表系统默认的提示音,也就是apple那个来通知的特别俗的提示音
$sound = 'default';
//通知的内容,必须是json
$body = array();
$body['aps'] = array('alert' => $message);
static $badge = 1;
$body['aps']['badge'] = $badge += 1;
if ($sound)
$body['aps']['sound'] = $sound;
//把数组数据转换为json数据
$payload = json_encode($body);
// 这个注释的是上线的地址,下边是测试地址,对应的是发布和开发:ssl://gateway.sandbox.push.apple.com:2195这个是沙盒测试地址
//ssl://gateway.push.apple.com:2195正式发布地址
// 创建推送流,然后配置推送流。
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert','d://ck.pem'); //刚刚合成的pem文件
stream_context_set_option($ctx, 'ssl', 'passphrase', $pass);
$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
if (!$fp) {
print "Failed to connect $err $errstr\n";
return;
} else {
print "Connection OK\n<br/>";
}
// send message
$msg = chr(0) . pack('n', '32') .pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;
//推送和关闭当前流
$result = fwrite($fp, $msg);
var_dump($result);
fclose($fp);
}

Yii2 给iOS App写推送的接口的更多相关文章

  1. 关于重置IOS App请求推送的授权请求

    项目要加入推送通知.測试完本地通知后.发现測不了远程通知.于是想重置授权请求. 下面是重置授权请求的方法: 方法一: 通用->还原->抹掉全部内容和设置 可是第一种方法非常费时,抹掉内容预 ...

  2. ios APP改名推送名字还是旧的

    重启手机就行了 https://community.jiguang.cn/t/ios-app/14759

  3. ios手机app消息推送

    h5+app项目,推送平台 " 个推 " 首先在manifest.json配置文件中点击模块权限配置,勾选push消息推送配置如图1-1 第二部在manifest.json配置文件 ...

  4. iOS上简单推送通知(Push Notification)的实现

    iOS上简单推送通知(Push Notification)的实现 根据这篇很好的教程(http://www.raywenderlich.com/3443/apple-push-notification ...

  5. iOS 10 消息推送(UserNotifications)秘籍总结(二)

    背景 上一篇博客iOS 10 消息推送(UserNotifications)秘籍总结(一)发布后被 简书编辑推荐至首页,这着实让我受宠若惊啊.可是好事不长,后面发生了让我伤心欲绝的事,我的女朋友不要我 ...

  6. iOS开发 iOS10推送必看

    iOS10更新之后,推送也是做了一些小小的修改,下面我就给大家仔细说说.希望看完我的这篇文章,对大家有所帮助. 一.简单入门篇---看完就可以简单适配完了 相对简单的推送证书以及环境的问题,我就不在这 ...

  7. 淘宝APP消息推送模型

    为什么到了2020年,"统一推送联盟"依旧无法起显著作用? - 知乎 https://www.zhihu.com/question/370632447 https://mp.wei ...

  8. iOS开发,推送消息 steps

    概述:推送过程简介 一.App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS服务器通信,发出注册远程推送的申请. ...

  9. ios之极光推送消息收到以后对消息的处理总结

    当我们的APP收到推送消息后,通常需要根据推送内容点击消息进入到指定的页面 这里讲一下收到推送消息后的处理,分为三种情况 :1.APP处于前台运行情况下     2.APP处于后台挂起情况下   3. ...

随机推荐

  1. Windbg+VirtualBox双机调试环境配置(XP/Win7/Win10)

    一.下载WDK10 https://developer.microsoft.com/zh-cn/windows/hardware/windows-driver-kit 安装Windows驱动程序工具包 ...

  2. 基于jsmpeg库下使用ffmpeg创建视频流连接websocket中继器传输视频并播放

    这个功能的基本工作是这样的: 1.使用node运行jsmpeg库下的websocket-relay.js文件,这个文件的作用是创建一个websocket视频传输中继器 2.运行ffmpeg,将输出发送 ...

  3. ios 判断屏幕显示是@2x还是@3x来调用字体大小

    传统font大小适配可能会根据屏幕宽度与iphone5或iphone6宽度的一个比例来适配.但如果有这样一个需求,在显示@2x图片的手机上显示一种字体,在显示@3x图片的手机上显示另一个固定大小的字体 ...

  4. 10个实用的 Linux 网络和监控命令[转]

    本文列出了10个基础的每个Linux用户都应该知道的网络和监控命令.网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslooku ...

  5. 使用postMessage实现跨域 解决'Failed to execute 'postMessage' on 'DOMWindow''

    使用iframe+postMessage解决跨域问题,首先来过一遍其中的原理咯 原理: 发送方使用postMessage方法向接收方推送消息,第一个参数为推送的内容,第二个参数是允许被访问的域名: 接 ...

  6. java 如何将 word,excel,ppt如何转pdf --openoffice (1)

    承上启下,可折叠 上一篇说的是:服务器是windows server时,用jacob将msoffice(指的是word,excel,ppt)转换成pdf. 若被部署项目的服务器是centOS等linu ...

  7. [Bug] 解决 Sql Server 数据库死锁问题

    SELECT request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tableName FROM sys.dm_tra ...

  8. SAP字符串处理

    拼接字符串 CONCATENATE t1 t2 INTO result. "直接拼接 CONCATENATE t1 t2 INTO result SEPARATED BY space. &q ...

  9. HttpURLConnection用法

    在SDK中的URLConnection链接Servlet的问题 1.URL的请求分类GET和POST GET请求可以获取页面静态的值,参数放URL后,传给Serverlct POST的参数是存放于ht ...

  10. dubbo中Listener的实现

    这里继续dubbo的源码旅程,在过程中学习它的设计和技巧,看优秀的代码,我想对我们日程编码必然有帮助的.而那些开源的代码正是千锤百炼的东西,希望和各位共勉. 拿ProtocolListenerWrap ...