簡體   English   中英

android 離子推送通知不打開后台應用程序

[英]Ionic push notification does not open the background app on android

如果單擊通知,則僅當應用程序不在后台時才會打開應用程序,如果應用程序在后台,則不會將其帶到前台。 Android平台。

因此,我花了很多時間來查找更改參數的bug,結果發現config.xml中的<preference name="AndroidLaunchMode" value="singleInstance"/>參數導致了問題。 我們使用此參數是因為深層鏈接正在創建應用程序的新實例。 但是現在我們將忽略這個問題。

在confix.xml中添加此行

<preference name="AndroidLaunchMode" value="singleTop" />

並構建應用程序,對我來說很好...

發生了相同的問題,但是是出於其他原因。 單擊通知時未打開該應用程序。

問題是我將插件從cordova-plugin-fcm更改為cordova-plugin-firebase

發送通知的服務器將click_action設置為FCM_PLUGIN_ACTIVITY

所以我改變了( php ):

    $n = new Notification($title, $body);
    return $n->setClickAction("FCM_PLUGIN_ACTIVITY")->setIcon('fcm_push_icon')->setSound('default');

至:

    return $n->setIcon('fcm_push_icon')->setSound('default');
<preference name="AndroidLaunchMode" value="singleTop" />

當您在 config.xml 中添加此行時,即使會發生兩種情況,或者這些情況也可能在不添加此行的情況下發生

  1. 當應用程序處於后台或被殺死時,您將無法收到通知

  2. 如果您在單擊它時收到后台通知。 它不會打開相應的應用程序

所以要解決第一點,你應該從后端服務發送fcm的object中值為object的通知鍵

因此,要解決第二點,不應在通知 object 中傳遞“click_action”鍵

因此,在 fcm api 中傳遞的整體 FCM object 應該看起來像

{
     "notification": {
         "title": "Test Title",
         "body": "message",
         "sound": "default",
         "icon": "fcm_push_icon",
         "image": ""
     },
     "data": {
         "action": "TEST"
     },
     "to":"caRvu_MeTN6HbMZKHfOO7y:APA91bEOEOAhpZNrDcDWew0uXM1HfKavyXbf3q4U090AHW5FmD7kDDxs4BRquaM*******************************************",
     "priority": "high"
}

注意:此東西僅針對 Capacitor Fcm 插件進行測試

希望這會對您或其他人有所幫助:-)

謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM