友盟推送的composer包

Crasph彬 123 0

    公司开发的新的需求需要使用推送功能,搜索网上的composer包,发现友盟的推送相当的小,几乎没有,有的也是基于官网的添加了命名空间罢了,所以造了这个轮子,一来,供以后使用方便;二来呢,学习下composer包开发的方法,只有多写,才能更加规范。废话不说,下面展示。

安装

$ composer require phprookiehbb/umeng:dev-master

使用

use CraspHb\Umeng\Umeng;
use CraspHb\Umeng\Config;
$key = 'appkey';
$secret = 'App Master Secret';
//初始化
$push = new Umeng($key, $secret);

方法一

直接定义发送数据的结构,然后发送

$data = [
            'payload'         => [
                "aps" => [
                    "alert" => [
                        'title'    => '测试',
                        'subtitle' => '测试2',
                        'body'     => $body,
                    ],
                    "badge" => 0,
                ],
            ],
            'filter'          => [
                'where' => [
                    'and' => [
                        'tag' => 343,
                    ],
                ],
            ],
            'production_mode' => "false",
        ];

方法二

内置了添加filter,policy的函数以及拼接常规参数的方法,故使用如下方式

    $data = [        
        'production_mode' => "false",     
    ];   
    $res = $push->set(Config::IOS_GROUPCAST, $data)
         ->setPredefine('title','测试')
         ->setPredefine('subtitle','Cesjk')
         ->setPredefine('body',$body)
         ->setPredefine('badge',0)
         ->setCustomizedField('aboutme','crasphb')
         ->setFilter(['or'=>[['tag' => '6401'],['tag' => '343']]])
         ->setPolicy(['start_time' => date('Y-m-d H:i:s',time()+30)])
         ->run();

此处可配合$data数组。 其中setPredefine为定义内置的参数,setCustomizeField为定义额外自定义的参数,setFilter为方便过滤的方法,出入数组,setPolicy为定时的方法, 其中setFiltersetPolicy均可使用setPredefine来代替,只不过这两个提供了更为便捷的方式,如下所示。

   $data = [
          'production_mode' => "false",
          'filter' => [
            'where' => [
              'and' => [
                'tag' => 343
              ]
            ]
          ]
        ];
        $res  = $push->set(Config::IOS_GROUPCAST, $data)
               ->setPredefine('title', '测试')
               ->setPredefine('subtitle', 'Cesjk')
               ->setPredefine('body', $body)
               ->setPredefine('badge', 0)
               ->setCustomizedField('aboutme', 'crasphb')
               ->setPolicy(['start_time' => date('Y-m-d H:i:s', time() + 30)])
               ->run();


支付宝打赏
微信打赏
发表评论
crasph 欢迎 Tania35plelp 再次光临! 编辑信息 修改头像
表情 图片 链接 代码

分享
微信
微博
QQ