4

APNSメッセージがうまく機能しています。ただし、送信するメッセージのタイトルを変更したいのですが。現在、タイトルは常に私のアプリの名前です。ネイティブiOSの「メール」アプリの通知には、メッセージのタイトルとして「差出人」アドレスがあり、通知の小見出しとしてメールの件名が太字で表示されていることがわかります。アプリの通知用にこれを再現したいのですが、その方法がわかりません。JSONペイロードには、「タイトル」キーについての言及がなく、「アラート」のキーがあるようです。私が望むことを達成することは可能ですか?

4

3 に答える 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 に答える