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