[英]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 中添加此行時,即使會發生兩種情況,或者這些情況也可能在不添加此行的情況下發生
當應用程序處於后台或被殺死時,您將無法收到通知
如果您在單擊它時收到后台通知。 它不會打開相應的應用程序
所以要解決第一點,你應該從后端服務發送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.