适用于 Xamarin 的 OneSignal SDK:HandleNotificationReceived 未在华为设备上触发,但 HandleNotificationOpened 它是

Posted

技术标签:

【中文标题】适用于 Xamarin 的 OneSignal SDK:HandleNotificationReceived 未在华为设备上触发,但 HandleNotificationOpened 它是【英文标题】:OneSignal SDK for Xamarin: HandleNotificationReceived not firing on Huawei device but HandleNotificationOpened it is 【发布时间】:2021-02-14 04:57:02 【问题描述】:

我正在尝试将 onesignal 集成到我正在使用 Xamarin SDK 开发的应用程序中。 使用 androidios 设备一切正常。

使用 Hauwei 设备时,我遇到的问题是“HandleNotificationReceived”回调未被调用,而是“HandleNotificationOpened”回调被调用。通知无论如何都会到达,因此建议华为推送套件配置正确。

我也尝试扩展“Com.OneSignal.Android.NotificationExtenderService”类,但场景是一样的:android 调用它,华为不调用它。

            OneSignal.Current.StartInit(OneSignalData.AppId)
            .Settings(new Dictionary<string, bool>() 
                 IOSSettings.kOSSettingsKeyAutoPrompt, false ,
                 IOSSettings.kOSSettingsKeyInAppLaunchURL, false , )
            .InFocusDisplaying(OSInFocusDisplayOption.Notification)
            .HandleNotificationOpened((result) =>
            
                on_notification_action(result);
            )
            .HandleNotificationReceived((notification) =>
            
                on_notification_received(notification);
            )
            .HandleInAppMessageClicked((action) =>
            
                // Example IAM click handling for IAM elements
                Debug.WriteLine("HandledInAppMessageClicked: 0", action.clickName);
            )               
            .EndInit();

已安装的 nuGet 包有: Com.OneSignal 3.10.2 和 nventive.Com.OneSignal 3.2.13 我正在华为 p40PRO EMUI 10.1.0 Andorid 10 上测试该应用程序。

省电应用权限设置也应该没问题。

会是什么? 提前致谢

【问题讨论】:

【参考方案1】:

根据 OneSignal 文档,您应该先集成Huawei Xamarin SDK,然后将 OneSignal 添加到您在华为设备上的应用中。也可以集成Xamarin Push Kit。

【讨论】:

以上是关于适用于 Xamarin 的 OneSignal SDK:HandleNotificationReceived 未在华为设备上触发,但 HandleNotificationOpened 它是的主要内容,如果未能解决你的问题,请参考以下文章

适用于Xamarin Forms的Xamarin Firebase PhoneAuth

适用于 iOS 的 Xamarin 表单:启动画面显示蓝色边框

OneSignal 推送通知序列(顺序)不正确

适用于 Xamarin 的 Genymotion Android 模拟器

Ubuntu 18.04 上缺少适用于 Android 的文件 Xamarin

适用于 Android/iOS/WinPhone 的 Xamarin 通用层