php使用JPush极光推送ios android通知消息

 PHP   高蒙   阅读(8302)   评论(1)   2016-06-30 21:38:19    JPush JPush极光推送 ios php android 


开发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里面的文件全部的移动到网站的根目录。 

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

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

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

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

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

namespace Api\Controller;
use Think\Controller;
class JpushController extends Controller{
protected $app_key = 'dd1066407b044738b6479275';
protected $master_secret = 'e8cc9a76d5b7a580859bcfa7';
protected $br = '<br/>';
protected $client;
public function _initialize()
{
require_once './JPush/JPush.php';
$this->client = new \JPush($this->app_key,$this->master_secret);
}
public function send()
{
 $result = $this->client->push()
                ->setPlatform(array('ios', 'android'))
                ->addTag(array('课程1','课程2'))
                ->setNotificationAlert('Hi, JPush')
                ->addAndroidNotification('您报名的课程,即将上课,请准时听课哦!', 'notification title', 1, array("key1"=>"value1", "key2"=>"value2"))
                ->addIosNotification("您报名的课程,即将上课,请准时听课哦!", 'iOS sound', \JPush::DISABLE_BADGE, true, 'iOS category', array("key1"=>"value1", "key2"=>"value2"))
                ->setMessage("msg content", 'msg title', 'type', array("key1"=>"value1", "key2"=>"value2"))
                ->setOptions(100000, 3600, null, false)
                ->send();
            echo json_encode($result) . $this->br;
}
}


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


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

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

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

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

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

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

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



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

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

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


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





相关文章



我要评论


站长昵称:(*)

输入内容:


评论列表


高蒙

男,程序猿一枚

 

人生要是没有理想, 那跟一条咸鱼有什么分别。


关于我

  http://www.shuchengxian.com

高蒙个人博客是以PHP技术为主的程序员个人博客。博客主要发布php开发中遇到的问题以及解决办法,同时个人博客也分享网站模板素材,jquery插件等方面素材。


站点声明:相关侵权、举报、投诉及建议等,请发E-mail:936594075#qq.com(#替换成@)。

Copyright © 2018, www.shuchengxian.com, All rights reserved. 个人博客皖公网安备 34152302000022号 皖ICP备15015490号

关键词:个人博客,PHP博客,PHP博客程序,高蒙博客,高蒙个人博客,php程序员博客,程序员个人博客