1

Firebase Cloud Messaging (FCM) から送信されたpush-plugin通知を受信するためにNativeScript を使用しています。

public constructor(
    private _services: PushService,
) {
    const settings = {
        senderID: "XXXXXXXX",
        badge: true,
        clearBadge: true,
        sound: true,
        alert: true,
        interactiveSettings: {
            actions: [{
                identifier: 'READ_IDENTIFIER',
                title: 'Read',
                activationMode: "foreground",
                destructive: false,
                authenticationRequired: true,
            }, {
                identifier: 'CANCEL_IDENTIFIER',
                title: 'Cancel',
                activationMode: "foreground",
                destructive: true,
                authenticationRequired: true,
            }],
            categories: [{
                identifier: 'READ_CATEGORY',
                actionsForDefaultContext: ['READ_IDENTIFIER', 'CANCEL_IDENTIFIER'],
                actionsForMinimalContext: ['READ_IDENTIFIER', 'CANCEL_IDENTIFIER'],
            }],
        },
        notificationCallbackIOS: data => {
            console.log("DATA: " + JSON.stringify(data));
        },
        notificationCallbackAndroid: (message, data, notification) => {
            console.log("MESSAGE: " + JSON.stringify(message));
            console.log("DATA: " + JSON.stringify(data));
            console.log("NOTIFICATION: " + JSON.stringify(notification));

            alert(message);
        },
    };

    PushNotifications.register(settings, data => {
        console.log("REGISTRATION ID: " + data);

        this.toDeviceToken = data;

        PushNotifications.onMessageReceived(settings.notificationCallbackAndroid);
    }, error => {
        console.log(error);
    });
}

このコードを使用notificationCallbackAndroidすると、Postman から成功メッセージを送信するときに、メソッドで成功メッセージを受け取ることができます。これは私がログに得るものです:

{
    "multicast_id": 8382252195536318747,
    "success": 1,
    "failure": 0,
    "canonical_ids": 0,
    "results": [
        {
            "message_id": "0:1521270133609562%161a06bff9fd7ecd"
        }
    ]
}

ただし、通知バーに通知は表示されません。

通知を表示するには別の方法を使用する必要がありますか?

4

2 に答える 2

1

さらに、通知は iOS で完全に機能するようです。ただし、Android では、アプリケーションがアクティブな場合にのみ機能します。

一部のフォーラムでは、通知トレイにプッシュ ペイロードを自動的に追加するには「通知」構造が必要であると述べていますが、コミット履歴を調べたところ、(試みられた) 修正されたようです。

いずれにせよ、私は別のアプリ開発 SDK (Xamarin) で同じプッシュ送信 SDK を使用しており、Nativescript アプリでカスタム コードから別のペイロードを送信したくありません。

Danzigers の回答を Android のみのコードとして試し、役立つかどうかを確認します。そうでない場合は、問題全体が回帰であることを理解しているため、このプラグインの古いバージョンに戻そうとします。

PS。このプラグインは、firebase プラグインに取って代わって廃止されたようですが、GCM と APS のみが必要な場合は、このプラグインのシンプルさ (およびフットプリントが小さいこと) が気に入っています。

アップデート

local-notifications プラグインをインストールし、Android でのみ使用するためのコードを追加しました。すべて問題ありません。

于 2018-09-18T11:19:29.067 に答える