适用于 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 开发的应用程序中。 使用 android 和 ios 设备一切正常。
使用 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 表单:启动画面显示蓝色边框
适用于 Xamarin 的 Genymotion Android 模拟器