版权声明:本文为博主原创文章,拒绝相同的垃圾博文。 https://blog.csdn.net/tsummerb/article/details/79903581
由于项目开发需要,需要服务端推送数据到安卓客户端,最终选择了第三方的个推数据推送。准备工作个推官网有详细介绍,此处不做详解。基本推算原理:在个推注册绑定客户端后,每一个客户端会有一个唯一的客户端id,通过发送推送内容到客户端完成消息推送。以下介绍个推两个推送类型(单个推送):
<1>点击通知打开应用
<?php
require_once(dirname(__FILE__) . '/' . 'IGt.Push.php');
define('APPKEY','XXX');
define('APPID','XXX');
define('MASTERSECRET','XXX');
define('HOST','https://api.getui.com/apiex.htm');
//单推接口案例
function pushMessageToSingle($cid,$msg){
$igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
//点击通知打开应用模版:
$template = IGtNotificationTemplateDemo($msg);
//定义"SingleMessage"
$message = new IGtSingleMessage();
$message->set_isOffline(true);//是否离线
$message->set_offlineExpireTime(3600*12*1000);//离线时间
$message->set_data($template);//设置推送消息类型
//$message->set_PushNetWorkType(0);//设置是否根据WIFI推送消息,2为4G/3G/2G,1为wifi推送,0为不限制推送
//接收方
$target = new IGtTarget();
$target->set_appId(APPID);
$target->set_clientId($cid);
//$target->set_alias(Alias);
try {
$rep = $igt->pushMessageToSingle($message, $target);
var_dump($rep);
echo ("<br><br>");
}catch(RequestException $e){
$requstId =e.getRequestId();
//失败时重发
$rep = $igt->pushMessageToSingle($message, $target,$requstId);
var_dump($rep);
echo ("<br><br>");
}
}
function IGtNotificationTemplateDemo($msg){
$template = new IGtNotificationTemplate();
$template->set_appId(APPID);//应用appid
$template->set_appkey(APPKEY);//应用appkey
$template->set_transmissionType(1);//透传消息类型
$template->set_transmissionContent("");//透传内容
$template->set_title("您有新的消息,请注意查收!");//通知栏标题
$template->set_text($msg);//通知栏内容
$template->set_logo("logo.png");//通知栏logo
$template->set_isRing(true);//是否响铃
$template->set_isVibrate(true);//是否震动
$template->set_isClearable(true);//通知栏是否可清除
//$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息
return $template;
}
?>
<2>点击通知打开网页
<?php
require_once(dirname(__FILE__) . '/' . 'IGt.Push.php');
define('APPKEY','XXX');
define('APPID','XXX');
define('MASTERSECRET','XXX');
define('HOST','https://api.getui.com/apiex.htm');
define('CID','XXX');
pushMessageToSingle();
//单推接口案例
function pushMessageToSingle(){
$igt = new IGeTui(HOST,APPKEY,MASTERSECRET);
//点击通知打开网页模版:
$template = IGtLinkTemplateDemo();
//定义"SingleMessage"
$message = new IGtSingleMessage();
$message->set_isOffline(true);//是否离线
$message->set_offlineExpireTime(3600*12*1000);//离线时间
$message->set_data($template);//设置推送消息类型
//$message->set_PushNetWorkType(0);//设置是否根据WIFI推送消息,2为4G/3G/2G,1为wifi推送,0为不限制推送
//接收方
$target = new IGtTarget();
$target->set_appId(APPID);
$target->set_clientId(CID);
//$target->set_alias(Alias);
try {
$rep = $igt->pushMessageToSingle($message, $target);
var_dump($rep);
echo ("<br><br>");
}catch(RequestException $e){
$requstId =e.getRequestId();
//失败时重发
$rep = $igt->pushMessageToSingle($message, $target,$requstId);
var_dump($rep);
echo ("<br><br>");
}
}
function IGtLinkTemplateDemo(){
$template = new IGtLinkTemplate();
$template ->set_appId(APPID);//应用appid
$template ->set_appkey(APPKEY);//应用appkey
$template ->set_title("您有新的消息,请注意查收");//通知栏标题
$template ->set_text("老板在吗");//通知栏内容
$template ->set_logo("");//通知栏logo
$template ->set_isRing(true);//是否响铃
$template ->set_isVibrate(true);//是否震动
$template ->set_isClearable(true);//通知栏是否可清除
$template ->set_url("www.baidu.com");//打开连接地址
//$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息
return $template;
}
?>