# 五、thinkphp集成小米推送
第一步,從小米開發者官網下載推送DEMO
第二部,解壓DEMO,然后有以下文件
```
android_example.php
autoload.php
ios_example.php
xmpush[核心文件]
```
復制SDK文件夾,至:ThinkPHP\\Library\\Vendor
修改所有xmpush文件夾內的類的命名空間為: xmpush
然后再SDK文件夾內,新建一個push類
代碼如下
```
<?php
namespace sdk;
use xmpush\Builder;
use xmpush\Sender;
use xmpush\Constants;
use xmpush\TargetedMessage;
use xmpush\IOSBuilder;
use xmpush\Stats;
use xmpush\Tracer;
include_once(dirname(__FILE__) . '/autoload.php');
class push
{
/*
* $style int 推送方式,1,安卓,2,蘋果,3,安卓推送打開應用內的某個activity
* $aliasList array,格式為array("1,2,3,4,5,6"),也就是推送的目標別名
* $titlse String 推送標題
* $conent String 推送內容
* $payload String 暫時不用
* 注:因為寫的比較倉促,可以將 3 內的跳轉到指定activity的參數放在參數列表,以方便調用
* 也可以將if else 改為switch,此類為舉例,完全可以自己構思這個類,我只是舉個例子
* */
public function pushs($style,$aliasList,$titlse,$conent,$payload="")
{
$id = (int)$style;
$desc = $conent;
if($id == 1){
$secret = '填寫參數';
$package = '填寫參數';
Constants::setPackage($package);
Constants::setSecret($secret);
$title = $titlse;
$sender = new Sender();
$message = new Builder();
$message->title($title);
$message->description($desc);
$message->passThrough(0);
$message->payload($payload); // 對于預定義點擊行為,payload會通過點擊進入的界面的intent中的extra字段獲取,而不會調用到onReceiveMessage方法。
$message->extra(Builder::notifyEffect, 1); // 此處設置預定義點擊行為,1為打開app
$message->extra(Builder::notifyForeground, 1);
$message->notifyId(0);
$message->build();
$targetMessage2 = new TargetedMessage();
$targetMessage2->setTarget('tag', TargetedMessage::TARGET_TYPE_ALIAS);
$targetMessage2->setMessage($message);
$targetMessageList = array( $targetMessage2);
}else if($id == 2){
$secret = '填寫參數';
$bundleId = '填寫參數';
Constants::setBundleId($bundleId);
Constants::setSecret($secret);
$message = new IOSBuilder();
$message->description($desc);
$message->soundUrl('default');
$message->badge('4');
$message->extra('payload', $payload);
$message->build();
$sender = new Sender();
}else if($id == 3){
$secret = '填寫參數';
$package = '填寫參數';
Constants::setPackage($package);
Constants::setSecret($secret);
$title = $titlse;
$sender = new Sender();
$message = new Builder();
$message->title($title);
$message->description($desc);
$message->passThrough(0);
$message->payload($payload); // 對于預定義點擊行為,payload會通過點擊進入的界面的intent中的extra字段獲取,而不會調用到onReceiveMessage方法。
$message->extra(Builder::notifyEffect, 2); // 此處設置預定義點擊行為,1為打開app,2為打開應用內的activity
$message->extra(Builder::notifyForeground, 1);
$message->extra(Builder::intentUri, "intent:#Intent;component=包名/完整的activity路徑;end"); //打開應用內activity必須添加此參數
$message->notifyId(0);
$message->build();
$targetMessage2 = new TargetedMessage();
$targetMessage2->setTarget('tag', TargetedMessage::TARGET_TYPE_ALIAS);
$targetMessage2->setMessage($message);
$targetMessageList = array( $targetMessage2);
}
print_r($sender->sendToAliases($message,$aliasList)->getRaw());
}
}
?>
```
然后呢,在方法內調用:
```
vendor('sdk.push');
$push = new \sdk\push();
$user = array("1,2");
$push->pushs(3,$user,"在游戲中消費100元","獲得了獎勵注意查收");
//至此,融合完成,調用即可進行推送,注意配置文件的寫入
```
- 一、php封裝pdo操作類
- 二、PHP 3des 加密類
- 三、PHP 調用webserver服務器詳解
- 四、命名空間的USE 和 require include require_once include_once詳解
- 五、thinkphp集成小米推送
- 六、PHP實現上傳文件進度條
- 七、PHP根據地址新建路徑下載地址文件
- 八、PHP使用AJAX上傳圖片即時預覽
- 九、強制CDN更新靜態資源文件
- 十、THINKPHP集成支付寶APP支付并提供接口
- 十一、THINKPHP集成支付寶APP支付 錯誤詳解 支付寶APP支付 顯示 系統繁忙 請稍后再試 ALI40247 dengg
- 十二、PHP生成二維碼圖片或帶logo的二維碼
- 十三、蛋疼的bom頭 惡心了我好久[json無法解析]
- 十四、php windows安裝imagick擴展
- 十五、windows下Composer的安裝與使用
- 十六、[2017]最新支付寶wap支付集成THINKPHP3.2.3 demo
- 十七、VUE.JS 安裝與發布
- 十八、PHP 執行 linux 命令行 操作示例
- 十九、關于CSP 減少XSS攻擊的介紹