SDK下载地址:https://dev.mi.com/mipush/downpage/
在WWW创建miPush,把SDK解压到WWW/miPush
我这边可能会有2种推送方法,使用 sendType 字段 实现,直接看代码:(我创建的接口名:gsw_android_mipush)
<?php use xmpush\Builder; use xmpush\Sender; use xmpush\Constants; include_once(dirname(__FILE__) . '/autoload.php'); // http://127.0.0.1/mipush/gsw_android_mipush.php?sendType=0¬ifyId=0&userAccount=&title=标题111&desc=内容222&payload= // 给全部用户发送 // http://127.0.0.1/mipush/gsw_android_mipush.php?sendType=1¬ifyId=0&userAccount=123,333&title=标题333&desc=内容444&payload= // 群发给123,333 $sendType = $_GET['sendType']; // 0→向所有设备发送消息 1→指定userAccount群发 $notifyId = $_GET['notifyId']; // 通知编号 相同编号的通知会互相覆盖 $userAccount = $_GET['userAccount']; // 指定userAccount群发 的 userAccount数组 1000次/s 单条消息体最多携带1000个设备ID $title = $_GET['title']; // 推送标题 $desc = $_GET['desc']; // 推送内容 $payload = $_GET['payload']; // 推送携带数据→键值对 暂时用不到 $push = new \push(); // 实例化下面的类 $push->pushFun($sendType, $notifyId, $userAccount, $title, $desc, $payload); // 调用函数 echo "<br><br>"."sendType = ".$sendType."<br>"."notifyId = ".$notifyId."<br>"."title = ".$title."<br>"."desc = ".$desc."<br>"."payload = ".$payload."<br><br>"; // 打印主要参数 var_dump($userAccount); // 打印 userAccount数组 class push { public function pushFun($style,$notifyId,$userAccount,$title,$desc,$payload) { $secret = 'xxxxxxxxxxxx'; // XX 小米推送秘钥 $package = 'com.xxxxx'; // XX 包名 Constants::setPackage($package); // 常量设置必须在new Sender()方法之前调用 Constants::setSecret($secret); // 常量设置必须在new Sender()方法之前调用 $sender = new Sender(); $message1 = new Builder(); $message1->title($title); // 通知栏的title $message1->description($desc); // 通知栏的descption $message1->passThrough(0); // 这是一条通知栏消息,如果需要透传,把这个参数设置成1,同时去掉title和descption两个参数 $message1->payload($payload); // 携带的数据,点击后将会通过客户端的receiver中的onReceiveMessage方法传入。 $message1->extra(Builder::notifyForeground, 1); // 应用在前台是否展示通知,如果不希望应用在前台时候弹出通知,则设置这个参数为0 $message1->notifyId((int)$notifyId); // 通知类型。最多支持0-4 5个取值范围,同样的类型的通知会互相覆盖,不同类型可以在通知栏并存 左边的官方文档,实际测试,随便取值0-9999999都可以。 $message1->build(); $id = (int)$style; if ($id == 0) { print_r($sender->broadcastAll($message1)->getRaw()); // 向所有设备发送消息。 }else if ($id == 1){ print_r($sender->sendToUserAccount($message1, $userAccount)->getRaw()); // 指定userAccount群发。userAccount:Android端自定义,10个设备可是使用相同的userAccount,第11个设备会顶掉第1个设备 } } }