开发APP的时候,需要将特定的消息使用JPush极光推送到ios和android不同版本的平台用户。作为接口的开发人员,php端的代码肯定是需要我来去编写。
首先第一件事,就是去JPush极光推送的官网去看看他们的手册。看看是怎么使用的。下面是,我整理的开发JPush极光推送中,需要用到的资料地址链接。
在线文档地址: /server/rest_api_v3_push/
github项目地址:/jpush/jpush-api-php-client
github项目案例:/jpush/jpush-api-php-client/blob/master/examples/push_example.php
首先我们要去JPush极光推送官网注册一个帐号。接着我们就要来实际动手来开发JPush极光推送在php中的使用了。在开发的过程中,一定要和ios android开发人员沟通好。
第一步:下载php服务器端的代码。
解压之后文件夹为jpush-api-php-client-master。打开之后,会有以下几个文件夹。
主要的库文件都在src里面。
第二步:将src里面的文件全部的移动到网站的根目录。
接着打开examplespush_example.php文件。这个是JPush极光推送的使用案例文件。
文档中提供了三种方法,我这里只使用了其中一种完整的推送示例,代码如下。
//完整的推送示例,包含指定Platform,指定Alias,Tag,指定iOS,Androidnotification,指定Message等
require_once("../src/JPush/JPush.php");
$br='
';
$app_key='dd1066407b044738b6479275';
$master_secret='e8cc9a76d5b7a580859bcfa7';
//初始化
$client=newJPush($app_key,$master_secret);
$result=$client->push()
->setPlatform(array('ios','android'))
->addAlias('alias1')
->addTag(array('tag1','tag2'))
->setNotificationAlert('Hi,JPush')
->addAndroidNotification('Hi,androidnotification','notificationtitle',1,array("key1"=>"value1","key2"=>"value2"))
->addIosNotification("Hi,iOSnotification",'iOSsound',JPush::DISABLE_BADGE,true,'iOScategory',array("key1"=>"value1","key2"=>"value2"))
->setMessage("msgcontent",'msgtitle','type',array("key1"=>"value1","key2"=>"value2"))
->setOptions(100000,3600,null,false)
->send();
echo'Result='.json_encode($result).$br;
第三步:我们具体的来实现php使用JPush极光推送的功能。
首先新建控制器,比如JpushController.class.php在php文件中可以书写下面的代码:
namespaceApiController;
useThinkController;
classJpushControllerextendsController{
protected$app_key='dd1066407b044738b6479275';
protected$master_secret='e8cc9a76d5b7a580859bcfa7';
protected$br='
';
protected$client;
publicfunction_initialize()
{
require_once'./JPush/JPush.php';
$this->client=newJPush($this->app_key,$this->master_secret);
}
publicfunctionsend()
{
$result=$this->client->push()
->setPlatform(array('ios','android'))
->addTag(array('课程1','课程2'))
->setNotificationAlert('Hi,JPush')
->addAndroidNotification('您报名的课程,即将上课,请准时听课哦!','notificationtitle',1,array("key1"=>"value1","key2"=>"value2"))
->addIosNotification("您报名的课程,即将上课,请准时听课哦!",'iOSsound',JPush::DISABLE_BADGE,true,'iOScategory',array("key1"=>"value1","key2"=>"value2"))
->setMessage("msgcontent",'msgtitle','type',array("key1"=>"value1","key2"=>"value2"))
->setOptions(100000,3600,null,false)
->send();
echojson_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通知消息的功能就开发完成了