Xamarin android 滑动应用程序时无法收到 OnMessageReceived 上的推送通知

问题描述 投票:0回答:1

当应用程序处于前台(在屏幕上可见)/后台(最小化应用程序)时,将调用 OnMessageReceived 函数并按预期显示通知消息。当我滑动应用程序或单击全部关闭时,我没有收到通知消息,而如果我也关闭,我会收到其他商业应用程序的通知..我正在使用仅数据消息

我正在使用 nuget Xamarin.Firebase.Messaging ,

Android 清单

<application android:label="MyTestingApp" android:theme="@style/MainTheme">
    <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" />
    <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
            <category android:name="${applicationId}" />
        </intent-filter>
    </receiver>
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

MyMessagingService 扩展 FirebaseMessagingService

[Service(Exported = false, Enabled = true, DirectBootAware =true)]
[IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
[IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })]
public class MyMessagingService : FirebaseMessagingService{

}

MainActivity--> OnStart()

const int requestLocationId = 0;

string[] notiPermission =
{
    Manifest.Permission.PostNotifications
};

string[] wakePermission =
{
    Manifest.Permission.WakeLock
};

if ((int)Build.VERSION.SdkInt < 33) return;

if (activity.CheckSelfPermission(Manifest.Permission.PostNotifications) != Permission.Granted)
{
    activity.RequestPermissions(notiPermission, requestLocationId);
    activity.RequestPermissions(wakePermission, requestLocationId);
}

我已经使用 Sigin Identity 创建了 apk 文件并安装在 Samsung S23 中。使用邮递员通过 API 调用(旧版)进行测试。我收到成功响应,但应用程序没有显示任何内容。打开应用程序后也没有收到任何通知消息。

邮差人体

{
    "to": "dpm-g36NSEaC5XFadT3ZnY:APA91bEIarlCxz6UEpyY7CYeBsnCSBpXApW6gHEOiVrvk0URkRP4FCqAHmApPFH4KQLDMfYhkkOTTUZ7ZEsRlyKzCPPS9CuLtet9pXi8_DUflE6h_g-iqtD_9DcVQ4amyb1CCfW05vN2",
    "CollapseKey": "1",    
    "data": {
        "body": "Hello,Good Morning! . Have a gr8 day ahead! message_web",
        "title": "Good Morning!)",
        "image": "https://images.pexels.com/photos/2055100/pexels-photo-2055100.jpeg",
        "notificationSmallIcon": "macrokiosk.boldwallet.drawable.logo",
        "notificationSmallIconColor": "#00ff00",
        "notificationLargeIcon" : "https://media.istockphoto.com/id/1352603244/photo/shot-of-an-unrecognizable-businessman-working-on-his-laptop-in-the-office.jpg?s=1024x1024&w=is&k=20&c=mTABddPRSU1r_hCBpknMjJbCIrJAicjjXGSU42rx-YI=",
        "click_action": "web",
        "actionResult": "https://google.com/"
    }
}

其他信息

Google Play 服务版本

118.2.0.5

依赖项/包

Xamarin.AndroidX.Core 1.12.0.4
Xamarin.AndroidX.Lifecycle.Common 2.7.0.1
Xamarin.Essentials 1.7.3
Xamarin.CommunityToolkit 2.0.2
Xamarin.Firebase.Messaging 123.3.1.1
Xamarin.Forms 5.0.0.2478
Xamarin.GooglePlayServices.Base 118.0.1

解决方案:当我们滑动应用程序关闭时需要收到通知

android xamarin.forms firebase-cloud-messaging
1个回答
0
投票

您可以尝试在通知请求中包含

"priority": "high"
字段。

{
    "to": "dpm-g36NSEaC5XFadT3ZnY:APA91bEIarlCxz6UEpyY7CYeBsnCSBpXApW6gHEOiVrvk0URkRP4FCqAHmApPFH4KQLDMfYhkkOTTUZ7ZEsRlyKzCPPS9CuLtet9pXi8_DUflE6h_g-iqtD_9DcVQ4amyb1CCfW05vN2",
    "CollapseKey": "1",    
    "data": {
        "body": "Hello,Good Morning! . Have a gr8 day ahead! message_web",
        "title": "Good Morning!)",
        "image": "https://images.pexels.com/photos/2055100/pexels-photo-2055100.jpeg",
        "notificationSmallIcon": "macrokiosk.boldwallet.drawable.logo",
        "notificationSmallIconColor": "#00ff00",
        "notificationLargeIcon" : "https://media.istockphoto.com/id/1352603244/photo/shot-of-an-unrecognizable-businessman-working-on-his-laptop-in-the-office.jpg?s=1024x1024&w=is&k=20&c=mTABddPRSU1r_hCBpknMjJbCIrJAicjjXGSU42rx-YI=",
        "click_action": "web",
        "actionResult": "https://google.com/"
    },

   "priority": "high"
}
© www.soinside.com 2019 - 2024. All rights reserved.