下载安装配置
下载源码
极光推送服务器端php源码下载解压安装
解压jpush-api-php-client文件改名为jpush放入ThinkPHP->Library->Vendor中上极光官网获取AppKey及密钥
极光官网配置
在项目Application->Common->Conf->config.php中配置密钥
//'配置项'=>'配置值'
'JPUSH' => array(
'APP_KEY' =>'这里输入AppKey',
'MASTER_SECRET' =>'这里输入Master Secret'
),
在需要调用jpush的Controller中引入autoload
Vendor('jpush.autoload');
use JPush\Client as JPushClient;
方法
/**
* @description 推送
* @params
alias 别名(数组)
alert 推送内容
page 点击推送跳转到的页面参数
* @return
*/
public function pushByAlias($alias,$alert,$page,$type){
$jpush = new JPushClient(C('JPUSH.APP_KEY'), C('JPUSH.MASTER_SECRET'));
try {
$response = $jpush->push()
->setPlatform(array('ios', 'android'));
foreach ($alias as $item) {
$response->addAlias($item);
}
$response
->androidNotification($alert, array(
'extras' => array(
'page' => $page
),
))
->send();
} catch (\JPush\Exceptions\APIConnectionException $e) {
print $e;
} catch (\JPush\Exceptions\APIRequestException $e) {
print $e;
}
}
另外
有多台设备登录同一账号解决方案
1. 数据库添加设备码和极光推送注册码字段
2. 登录时将本机设备码对应的其他用户设备码清空(数据库)
3. 为本用户保存本机设备码和注册码(数据库)
4. 如果用户换手机登录则推送给用户对应之前的手机(推送)
5. 删除同别名的其他设备(极光)
//删除同别名的其他设备
public function deleteAliasByRID($alias,$rID){
$jpush = new JPushClient(C('JPUSH.APP_KEY'), C('JPUSH.MASTER_SECRET'));
$device = $jpush->device();
//删除别名下全部设备
$UUID = $device->getAliasDevices($alias)['body']['registration_ids'];
for($i = 0;$i<count($UUID);$i++){
$device->updateAlias($UUID[$i], '');
}
//为本机增加别名
$device->updateAlias($rID, $alias);
}