TP5.1接入小米推送SDK并推送消息到手机

首先进入小米开放平台下载PHP版本的SDK(点我进入下载页),下载后将压缩包内的php→sdk中的所有文件复制到TP5.1项目中extend中的子目录mipush中(mipush是我自己新建的空文件夹,名字随便起)

在这里插入图片描述

SDK成功放入项目后我们要在需要使用的地方引入一下autoload.php即可,xmpush中的类都已经配置好了命名空间无需处理。这里推荐使用TP5.1提供的Env获取extend路径后拼接绝对路径的方式引入:

use think\facade\Env;
//mipush是extend下子目录名,和你创建的文件夹名对应起来
include_once(Env::get("extend_path").'mipush\autoload.php');	
use xmpush\Builder;
use xmpush\Constants;
use xmpush\Sender;

成功引入后即可直接编写业务逻辑了,这里贴出我的一个示例,一些参数在注释中说明:

public function pushAndroidAllUser($title,$description)
{
    $secret = 'XXXXXXXXXX';		//小米开放平台应用对应的secret
    $package = 'XXXXXXXXX';		//应用包名,需和小米开放平台对应
    Constants::setPackage($package);	//设置常量
    Constants::setSecret($secret);		//设置常量
    $sender = new Sender();				//发送类实例化
    $message = new Builder();			//信息类实例化
    $message->title($title);  // 通知栏的title
    $message->description($description); // 通知栏的description
    $message->passThrough(0);  // 这是一条通知栏消息,如果需要透传,把这个参数设置成1,同时去掉title和description两个参数
    $message->notifyType(-1);   //1:提示音提示 2:震动提示 4:led灯光提示 -1:以上三种效果都有 0:即静默推送
    $message->timeToLive(60*60*1000);   //消息的生命周期(默认保留2周, 单位: ms)如想尽快推送给联网设备则越短越好
    $message->extra(Builder::notifyForeground, 1); // 应用在前台是否展示通知,如果不希望应用在前台时候弹出通知,则设置这个参数为0
    $message->extra(Constants::EXTRA_PARAM_NOTIFY_EFFECT,Constants::NOTIFY_LAUNCHER_ACTIVITY);  //设置用户点击通知后的事件,此例为点击后启动应用
    $message->notifyId(2); // 通知类型。最多支持0-4 5个取值范围,同样的类型的通知会互相覆盖,不同类型可以在通知栏并存
    $message->build();	//构建信息体
    return json($sender->broadcastAll($message)->getRaw());	//broadcastAll为推送给所有用户,getraw为获取请求结果
}

访问后打印出来的json为:
在这里插入图片描述

这里仅以推送给所有用户为例,也可以在手机端为设备设置主题或别名,通过这些方式单推或群推。具体方法和所需参数可以在Sender类中查看。

发布了29 篇原创文章 · 获赞 1 · 访问量 7812

猜你喜欢

转载自blog.csdn.net/qq_38280150/article/details/104218077