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個設備 } } }