我的APNS消息运行良好。但是,我想更改已发送邮件的标题。目前,标题始终是我的应用程序的名称。我看到原生iOS' Mail'应用程序有' From'地址作为邮件的标题,并且电子邮件主题以粗体显示为通知的子标题。我想为我的应用通知重现这一点,但无法看到如何执行此操作。 JSON有效负载似乎有一个键,用于" alert"没有提及标题'键。是否有可能实现我想要的目标?
答案 0 :(得分:5)
无法更改APNS消息的标题。
答案 1 :(得分:2)
我只是偶然发现了这个旧问题而只是想补充说明,现在可以指定通知的标题和正文(因为我认为是iOS 8)。
您的推送有效负载需要如下所示:
change
您可以在Apple的Local and Remove Notification Programming Guide找到详细的规格。
答案 2 :(得分:0)
有可能!
需要Message.php中的ApnsPHP_Message类来修改位:
//标题的新var
protected $_titleText;
//为标题创建setter& getter方法
public function setTitleText($sText)
{
$this->_titleText = $sText;
}
public function getTitleText()
{
return $this->_titleText;
}
//修改_getPayload方法
protected function _getPayload()
{
$aPayload[self::APPLE_RESERVED_NAMESPACE] = array();
if (isset($this->_sText)) {
if(isset($this->_titleText)){
$aPayload[self::APPLE_RESERVED_NAMESPACE]['alert']['title'] = (string)$this->_titleText;
$aPayload[self::APPLE_RESERVED_NAMESPACE]['alert']['body'] = (string)$this->_sText;
}else{
$aPayload[self::APPLE_RESERVED_NAMESPACE]['alert'] = (string)$this->_sText;
}
}
if (isset($this->_nBadge) && $this->_nBadge > 0) {
$aPayload[self::APPLE_RESERVED_NAMESPACE]['badge'] = (int)$this->_nBadge;
}
if (isset($this->_sSound)) {
$aPayload[self::APPLE_RESERVED_NAMESPACE]['sound'] = (string)$this->_sSound;
}
if (is_array($this->_aCustomProperties)) {
foreach($this->_aCustomProperties as $sPropertyName => $mPropertyValue) {
$aPayload[$sPropertyName] = $mPropertyValue;
}
}
return $aPayload;
}
通过此修改,您可以设置推送消息标题:
$message->setTitleText("This is title");