我是靠谱客的博主 虚幻饼干,最近开发中收集的这篇文章主要介绍PHP使用极光推送,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

开发APP的时候,需要将特定的消息使用JPush极光推送到ios和android不同版本的平台用户。作为接口的开发人员,php端的代码肯定是需要我来去编写。

首先第一件事,就是去JPush极光推送的官网去看看他们的手册。看看是怎么使用的。下面是,我整理的开发JPush极光推送中,需要用到的资料地址链接。

在线文档地址:  http://docs.jiguang.cn/server/rest_api_v3_push/

github项目地址:https://github.com/jpush/jpush-api-php-client

github项目案例:https://github.com/jpush/jpush-api-php-client/blob/master/examples/push_example.php


首先我们要去JPush极光推送官网注册一个帐号。接着我们就要来实际动手来开发JPush极光推送在php中的使用了。在开发的过程中,一定要和ios android开发人员沟通好。


第一步:下载php服务器端的代码。

解压之后文件夹为jpush-api-php-client-master。打开之后,会有以下几个文件夹。

1.png

主要的库文件都在src里面。


第二步:将src里面的文件全部的移动到网站的根目录。 

接着打开examplespush_example.php文件。这个是JPush极光推送的使用案例文件。

文档中提供了三种方法,我这里只使用了其中一种完整的推送示例,代码如下。


  1. // 完整的推送示例,包含指定Platform,指定Alias,Tag,指定iOS,Android notification,指定Message等
  2. require_once("../src/JPush/JPush.php");
  3. $br = '<br/>';
  4. $app_key = 'dd1066407b044738b6479275';
  5. $master_secret = 'e8cc9a76d5b7a580859bcfa7';
  6. // 初始化
  7. $client = new JPush($app_key, $master_secret);
  8. $result = $client->push()
  9.     ->setPlatform(array('ios', 'android'))
  10.     ->addAlias('alias1')
  11.     ->addTag(array('tag1', 'tag2'))
  12.     ->setNotificationAlert('Hi, JPush')
  13.     ->addAndroidNotification('Hi, android notification', 'notification title', 1, array("key1"=>"value1", "key2"=>"value2"))
  14.     ->addIosNotification("Hi, iOS notification", 'iOS sound', JPush::DISABLE_BADGE, true, 'iOS category', array("key1"=>"value1", "key2"=>"value2"))
  15.     ->setMessage("msg content", 'msg title', 'type', array("key1"=>"value1", "key2"=>"value2"))
  16.     ->setOptions(100000, 3600, null, false)
  17.     ->send();
  18. echo 'Result=' . json_encode($result) . $br;

第三步:我们具体的来实现php使用JPush极光推送的功能。

首先新建控制器,比如 JpushController.class.php 在php文件中可以书写下面的代码:


  1. namespace ApiController;
  2. use ThinkController;
  3. class JpushController extends Controller{
  4. protected $app_key = 'dd1066407b044738b6479275';
  5. protected $master_secret = 'e8cc9a76d5b7a580859bcfa7';
  6. protected $br = '<br/>';
  7. protected $client;
  8. public function _initialize()
  9. {
  10. require_once './JPush/JPush.php';
  11. $this->client = new JPush($this->app_key,$this->master_secret);
  12. }
  13. public function send()
  14. {
  15.  $result = $this->client->push()
  16.                 ->setPlatform(array('ios', 'android'))
  17.                 ->addTag(array('课程1','课程2'))
  18.                 ->setNotificationAlert('Hi, JPush')
  19.                 ->addAndroidNotification('您报名的课程,即将上课,请准时听课哦!', 'notification title', 1, array("key1"=>"value1", "key2"=>"value2"))
  20.                 ->addIosNotification("您报名的课程,即将上课,请准时听课哦!", 'iOS sound', JPush::DISABLE_BADGE, true, 'iOS category', array("key1"=>"value1", "key2"=>"value2"))
  21.                 ->setMessage("msg content", 'msg title', 'type', array("key1"=>"value1", "key2"=>"value2"))
  22.                 ->setOptions(100000, 3600, null, false)
  23.                 ->send();
  24.             echo json_encode($result) . $this->br;


第四步:上面的代码就可以实现php使用JPush极光推送向ios android通知消息的功能了。


下面的说明和值得注意,我就在这个地方折腾了很久。特别是注意这几个参数之间的关系。是取交集还是并集一定要看清楚了。

我这里使用的是tag,你也可以使用alias,但是他们直接是取交集的,可以使用其中一个。

关键字 含义 类型 说明 备注
tag JSON Array 标签 数组。多个标签之间是 OR 的关系,即取并集。 用标签来进行大规模的设备属性、用户属性分群。 一次推送最多 20 个。
  • 有效的 tag 组成:字母(区分大小写)、数字、下划线、汉字。

  • 限制:每一个 tag 的长度限制为 40 字节。(判断长度需采用UTF-8编码)

tag_and JSON Array 标签AND 数组。多个标签之间是 AND 关系,即取交集。 注册与 tag 区分。一次推送最多 20 个。
alias JSON Array 别名 数组。多个别名之间是 OR 关系,即取并集。 用别名来标识一个用户。一个设备只能绑定一个别名,但多个设备可以绑定同一个别名。一次推送最多 1000 个。
  • 有效的 alias 组成:字母(区分大小写)、数字、下划线、汉字。

  • 限制:每一个 alias 的长度限制为 40 字节。(判断长度需采用UTF-8编码)

registration_id JSON Array 注册ID 数组。多个注册ID之间是 OR 关系,即取并集。 设备标识。一次推送最多 1000 个。



每种类型的值都是数组(Array),数组里多个值之间隐含的关系是是 OR,即取并集。但 tag_and 不同,其数组里多个值之间是 AND 关系,即取交集。

4种类型至少需要有其一。如果值数组长度为 0,表示该类型不存在。

这几种类型可以并存。并存时多项的隐含关系是 AND,即取交集。


通过上面的几个步骤php使用JPush极光推送ios android通知消息的功能就开发完成了

最后

以上就是虚幻饼干为你收集整理的PHP使用极光推送的全部内容,希望文章能够帮你解决PHP使用极光推送所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部