web-dev-qa-db-ja.com

着信OneSignal通知でアラートを防ぐ方法は?

OneSignalプッシュ通知を使用しています。 Androidアプリがフォアグラウンドにあり、通知を受信すると、通知を含むアラートボックスが作成されます。通知を受信したときにこれが表示されないようにするにはどうすればよいですか?

8
user3671635

SDKから ドキュメント -Init OneSignalを起動するときは、必ず「None」を指定してinFocusDisplayingを呼び出し、アプリAlertBoxでOneSignalを無効にしてください。

notificationReceivedHandlerセクションにもあります-

重要な動作に関する注意事項-通知を受信したときに独自のアプリ内メッセージを表示する場合は、必ずinFocusDisplayingをNoneで呼び出して、アプリ内のOneSignalのAlertBoxを無効にしてください。

10

このコード行を使用して、問題を解決しました。

OneSignal.inFocusDisplaying(2);
1

同様の問題があり、 inFocusDisplaying を使用して解決しました

これをAndroidで使用する方法は次のとおりです。

    public class MyApplicationClass extends Application {

private static Context context;
PlayerIdsession session;

public static Context getContext() {
    return context;
}

@Override
public void onCreate() {
    super.onCreate();
    context = getApplicationContext();
    //MyNotificationOpenedHandler : This will be called when a notification is tapped on.
    //MyNotificationReceivedHandler : This will be called when a notification is received while your app is running.
    OneSignal.startInit(this)
            .setNotificationOpenedHandler(new MyNotiOpenedHandler())
            .setNotificationReceivedHandler( new MyNotiReceivedHandler() )
            .inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification)
            .init();

    OneSignal.idsAvailable(new OneSignal.IdsAvailableHandler() {
        @Override
        public void idsAvailable(String userId, String registrationId) {

            if (userId != null){
                session=new PlayerIdsession(context);
                session.savePlayerId(userId);
                Log.d("debug", "PlayerId:" + userId);
            }

           /* if (registrationId != null){
                Log.d("debug", "registrationId:" + registrationId);
        }*/

        }
    });
}
}

この行をwindows.plugin.signalに追加するだけです

.inFocusDisplaying(window.plugins.OneSignal.OSInFocusDisplayOption.Notification)

例えば ​​:-

window.plugins.OneSignal
.startInit("YOUR_APPID")
.inFocusDisplaying(window.plugins.OneSignal.OSInFocusDisplayOption.Notification)
.endInit();
1
mayur sawant