静默推送遇到的坑(静默推送硬生生的做成了普通推送)。
下面就来看看由于我们公司的后台,设置静默推送不规范导致的iOS客户端在后台收到推送时,有声音有文字的情况。本质上变成了普通推送(有声音有文字)。
我们公司的后台说是 设置的是静默推送,但实际上从他给我PHP文件来看,没按照静默推送的格式来。导致客户端在后台时,通知栏会有通知的内容展示,同时也会有声音。
这与静默推送(收到推送,没有声音没有文字)的标准相悖了,导致一直在这个问题上卡了很久。
在此记录下来,以备不时之需,希望有遇到和我一样问题的朋友,少走一些坑。
后台设置的有问题的代码
function IGtTransmissionTemplateDemo($appid,$appkey,$msgContent,$keyType,$keyId,$temp_ietm="",$client_notice="default"){
$msg = array(
'keyType' => $keyType,
'keyId' => $keyId,
'msg' => $msgContent,
'nickname' => $temp_ietm
);
$msg = json_encode($msg);
$template = new IGtTransmissionTemplate();
$template->set_appId($appid);//应用appid
$template->set_appkey($appkey);//应用appkey
$template->set_transmissionType(2);//透传消息类型
$template->set_transmissionContent($msg);//透传内容
$apn = new IGtAPNPayload();
$alertmsg=new DictionaryAlertMsg();
$alertmsg->body=$msgContent;
$alertmsg->actionLocKey="ActionLockey";
$alertmsg->locKey=$msgContent;
$alertmsg->locArgs=array("locargs");
$alertmsg->launchImage="launchimage";
// IOS8.2 支持
$alertmsg->title=SYS_ZH_NAME;
$alertmsg->titleLocKey=SYS_ZH_NAME;
$alertmsg->titleLocArgs=array("TitleLocArg");
$apn->alertMsg=$alertmsg;
$apn->contentAvailable=1;
$apn->sound=$client_notice;
$apn->badge=1;
$apn->add_customMsg("payload","payload");
$apn->add_customMsg("keyType",$keyType);
$apn->add_customMsg("keyId",$keyId);
$apn->add_customMsg("nickname",$nickname);
$apn->add_customMsg("msg",$msgContent);
$apn->category="ACTIONABLE";
$template->set_apnInfo($apn);
return $template;
}
|