极光推送(JPush)是独立的第三方云推送平台,致力于为全球移动应用开发者提供专业、高效的移动消息推送服务。

本篇博文讲述如何在将极光推送DEMO整合到ThinkPHP框架中,我使用的是极光推送PHP_DEMO_V3.4.3版本:

1、将极光推送DEMO文件(文件夹名称为Jpush)放入到你的公共文件夹(Common)中,按照极光开发文档在极光后台建立好自己的应用,获取相应的app_key、master_secret,在文件中将会用到这两个值;

2、如上,在公共文件夹(Common)下建立function.php文件;

  1. /**
  2. * 将数据先转换成json,然后转成array
  3. */
  4. function json_array($result){
  5. $result_json = json_encode($result);
  6. return json_decode($result_json,true);
  7. }
  8. /**
  9. * 向所有设备推送消息
  10. * @param string $message 需要推送的消息
  11. */
  12. function sendNotifyAll($message){
  13. require_once "JPush\JPush.php";
  14. $app_key = 'your app_key';                //填入你的app_key
  15. $master_secret = 'your master_secret';    //填入你的master_secret
  16. $client = new \JPush($app_key,$master_secret);
  17. $result = $client->push()->setPlatform('all')->addAllAudience()->setNotificationAlert($message)->send();
  18. return json_array($result);
  19. }
  20. /**
  21. * 向特定设备推送消息
  22. * @param array $regid 特定设备的设备标识
  23. * @param string $message 需要推送的消息
  24. */
  25. function sendNotifySpecial($regid,$message){
  26. require_once "JPush\JPush.php";
  27. $app_key = 'your app_key';                //填入你的app_key
  28. $master_secret = 'your master_secret';    //填入你的master_secret
  29. $client = new \JPush($app_key,$master_secret);
  30. $result = $client->push()->setPlatform('all')->addRegistrationId($regid)->setNotificationAlert($message)->send();
  31. return json_array($result);
  32. }
  33. /**
  34. * 向指定设备推送自定义消息
  35. * @param string $message 发送消息内容
  36. * @param array $regid 特定设备的id
  37. * @param int $did 状态值1
  38. * @param int $mid 状态值2
  39. */
  40. function sendSpecialMsg($regid,$message,$did,$mid){
  41. require_once "JPush\JPush.php";
  42. $app_key = 'your app_key';                //填入你的app_key
  43. $master_secret = 'your master_secret';    //填入你的master_secret
  44. $client = new \JPush($app_key,$master_secret);
  45. $result = $client->push()->setPlatform('all')->addRegistrationId($regid)
  46. ->addAndroidNotification($message,'',1,array('did'=>$did,'mid'=>$mid))
  47. ->addIosNotification($message,'','+1',true,'',array('did'=>$did,'mid'=>$mid))->send();
  48. return json_array($result);
  49. }
  50. /**
  51. * 得到各类统计数据
  52. * @param array $msgIds 推送消息返回的msg_id列表
  53. */
  54. function reportNotify($msgIds){
  55. require_once "JPush\JPush.php";
  56. $app_key = 'your app_key';                //填入你的app_key
  57. $master_secret = 'your master_secret';    //填入你的master_secret
  58. $client = new \JPush($app_key,$master_secret);
  59. $response = $client->report()->getReceived($msgIds);
  60. return json_array($response);
  61. }

在文件中写入各种集成函数,以方便在系统应用控制器中进行调用。

3、最后便是在控制器中进行调用即可;

  1. //向特定用户进行推送—单播
  2. //$regid可以是一个单个regid组成的字符串,也可以是多个regid组成的数组
  3. //$data['content']是你所需要推送的内容
  4. $result_s = sendNotifySpecial($regid, $data['content']);
  5. //想所有用户进行推送—广播
  6. $result_a = sendNotifyAll($data['content']);
  7. //获取统计用户是否获取推送消息的信息(或者有多少用户收到了推送消息)
  8. //$msgids是你推送消息的消息id
  9. $result_r = reportNotify($msgIds);
版权声明:转载时请标注http://blog.csdn.net/zhihua_w

ThinkPHP框架整合极光推送DEMO的更多相关文章

  1. tp的极光推送demo

    原文地址:http://blog.csdn.net/zhihua_w/article/details/52197611 极光推送(JPush)是独立的第三方云推送平台,致力于为全球移动应用开发者提供专 ...

  2. Java整合极光推送 ( 简单 )

    Java 整合极光推送官方文档:https://github.com/jpush/jpush-api-java-client 这里记录一下简单的使用步骤:创建一个普通的 Maven 工程然后添加依赖 ...

  3. 友盟分享,极光推送Demo

    友盟分享SDK下载及官方文档 http://dev.umeng.com/social/ios/detail-share 1.注册应用获取App友盟Appkey(556d14ad67e58eb08400 ...

  4. 极光推送Demo

    <?php //极光推送的类    //文档见:http://docs.jpush.cn/display/dev/Push-API-v3         /***使用示例***/        ...

  5. Ionic5整合极光推送JPush ( 简单 )

    项目初始化 1. 安装项目依赖: # 安装cordova插件 ionic cordova plugin add jpush-phonegap-plugin --variable APP_KEY=&qu ...

  6. thinkphp3.2集成极光推送

    项目中用到了给客户端的推送功能,选用了极光推送,下面演示一下在thinkphp中集成极光推送 1.下载极光推送的php类,可以从笔者的git下载 地址:https://git.oschina.net/ ...

  7. ThinkPHP 3.2.x 集成极光推送指北

    3.2版本已经过了维护生命周期,官方已经不再维护,请及时更新至5.0版本 -- ThinkPHP 官方仓库 以上,如果有条件,请关闭这个页面,然后升级至 ThinkPHP 5,如果由于各种各样的原因无 ...

  8. 关于极光推送Jpush的demo

    关于极光推送Jpush 推送是手机app必不可少的一样功能,这次由于公司项目需要研究了一下.由于推送一般写于服务端,所以对于不会Android的javaweb程序员要写出一个完整的demo是一件很头痛 ...

  9. 极光推送---安卓Demo

    对于一个一直干.net的程序媛来说,冷不丁的让小编干安卓,那种感觉就好似小狗狗咬小刺猬一样,不知道从哪儿开始下手,对于小编来说,既是挑战更是机遇,因为知识都是相通的,再者来说,在小编的程序人生中,留下 ...

随机推荐

  1. VUE模仿百度搜索框,按上下方向键及回车键实现搜索选中效果

    逻辑介绍: 1.表单获取焦点时,显示搜索建议框 2.输入内容时,请求后台接口,并将返回的数据展示在搜索建议框内 3.表单获取焦点情况下,按键盘上下箭头可实现搜索列表项的切换,按回车可以选择当前激活的选 ...

  2. MVC架构介绍—查询功能的开发

    select和from语句 注意:select和from可以不设置,默认情况下: select获取映射表的所有字段: from获取实体映射表的表名:如果设置select则必须设置frorm,但是允许仅 ...

  3. 将代码从 spark 1.x 移植到 spark 2.x

    1. SparkSession sparkSession可以视为sqlContext和hiveContext以及StreamingContext的结合体,这些Context的API都可以通过spark ...

  4. eclipse使用struts2找不到action方法或找不到action的错误记录

    在确认web.xml已经配置, 配置好struts.xml , 代码没有报错, jar包没有问题, 服务器也没有问题, 代码逻辑没有问题, 关键字方法名action都没有写错, 可以运行旧的相同的代码 ...

  5. MATLAB中eig的作用

    MATLAB中eig的作用 eig Find eigenvalues and eigenvectors  返回矩阵的特征值和特征向量;  [V,D] = eig(A)  D是特征值  V特征向量  例 ...

  6. 【20】策略者模式(Strategy Pattern)

    一.引言 本文要介绍的策略模式也就是对策略进行抽象,策略的意思就是方法,所以也就是对方法的抽象,下面具体分享下我对策略模式的理解. 二.策略者模式介绍 2.1 策略模式的定义 在现实生活中,策略模式的 ...

  7. 从函数式编程到Promise

    译者按: 近年来,函数式语言的特性都被其它语言学过去了.JavaScript异步编程中大显神通的Promise,其实源自于函数式编程的Monad! 原文: Functional Computation ...

  8. linux学习笔记-安装配置使用clamav杀毒软件

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 1.安装clamav 2.更新病毒库 # freshclam 如果更新不了,或者更新特别慢,可以手动下载病毒库文件,放到/var ...

  9. JS日期Date详解与实例扩展

    一:Date类型介绍 要创建一个日期对象,使用new操作符和Date构造函数即可: var now = new Date(); Date.parse()方法 其中Date.parse()方法接收一个表 ...

  10. Vue父组件接收不到子组件$emit事件的原因分析

    通常有两种情况: 事件名称不全是小写.事件名称要求全小写. 不是父子关系.这里的父子关系是严格的父子关系,祖孙关系也不行.只能一层一层触发,这在写树形组件时,很容易掉坑里.