APNSメッセージがうまく機能しています。ただし、送信するメッセージのタイトルを変更したいのですが。現在、タイトルは常に私のアプリの名前です。ネイティブiOSの「メール」アプリの通知には、メッセージのタイトルとして「差出人」アドレスがあり、通知の小見出しとしてメールの件名が太字で表示されていることがわかります。アプリの通知用にこれを再現したいのですが、その方法がわかりません。JSONペイロードには、「タイトル」キーについての言及がなく、「アラート」のキーがあるようです。私が望むことを達成することは可能ですか?
5238 次
3 に答える
5
APNSメッセージのタイトルを変更することはできません。
于 2012-08-06T12:51:00.377 に答える
5
私はこの古い質問に出くわし、追加したかったのですが、通知のタイトルと本文を指定できるようになりました(iOS 8以降だと思います)。
プッシュペイロードは次のようになります。
{
"aps": {
"alert": {
"title": "New Message from Boss",
"body": "Can you complete the new feature until tomorrow, please?!"
}
}
}
詳細な仕様については、Appleのローカルおよび削除通知プログラミングガイドを参照してください。
于 2018-01-26T14:34:18.260 に答える
0
可能です!
Message.phpのApnsPHP_Messageクラスは、少し変更するために必要です。
//タイトルの新しい変数
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");
于 2017-02-15T09:10:01.440 に答える