0

そこで、Appcelerator で arrowdb とクラウド サービスを使用してプッシュ通知を送信します。これはうまく機能しているようで、iPhone は通知を受け取ります。バッジ番号を0にクリアする簡単な方法があるのだろうか? arrowdbサーバー(またはアップル)でもリセットする必要があると思います。

アプリを開くたびにバッジをリセットしたい。

私がしたことは、alloy.jsに履歴書リスナーを追加することでした

Ti.App.addEventListener("resumed", function(e){

イベント リスナーで最初に行うこと (バッジをローカルにリセットするため):

Cloud.PushNotifications.resetBadge({
        device_token: device_token
    }, function (e) {
        if (e.success) {
            Ti.API.info('Badge Reset!');
        }
        else {
            Ti.API.error(e);
        }
    });

次に、プッシュを送信して、サーバー上のバッジをクリアするために、次のように自分自身にプッシュを送信します。

var push_payload = {
        badge:0,
        sound:"",
        alert:"",
        title:"",
        message_text:"",
        push_type:"clear",
        from_user:Alloy.Globals.currentUser.id,
        vibrate:false
    };

    Cloud.PushNotifications.notify({
        channel: 'private_message',
        payload: push_payload,
        to_ids: Alloy.Globals.currentUser.id
    }, function (e) {
        if (e.success) {
            Ti.API.info('Success sending push notification');
        } else {
            Ti.API.info('Error sending push: '+((e.error && e.message) || JSON.stringify(e)));
        }
    });

イベントリスナーが呼び出されたようで、プッシュが送信されます。しかし、どういうわけか、バッジはまだ iPhone デバイスに残っています...これを別の方法で行う必要がありますか?

4

3 に答える 3

4

これを試しましたか?

Titanium.UI.iOS.appBadge = 0
于 2016-06-06T20:46:16.290 に答える
0

バッジ番号をきれいにするために、私が数回前に行ったプロジェクトで、私は正常に使用しました

Ti.UI.iPhone.setAppBadge(0);

それがあなたにとってもうまくいくことを願っています。

于 2016-06-06T20:48:26.777 に答える