您好我正在使用Push Notification Plugin for Xamarin在我的应用中实现推送通知,并且我正在接收推送通知(使用GCM),但问题是我发送新设备时发送到设备的推送通知正在被替换这不是预期的行为,我想显示收到的所有通知,这就是我配置我的Android应用程序的方式
public override void OnCreate()
{
base.OnCreate();
AppContext = this.ApplicationContext;
CrossPushNotification.NotificationContentTextKey = "message";
CrossPushNotification.NotificationContentTitleKey = "contentTitle";
CrossPushNotification.NotificationContentDataKey = "data";
CrossPushNotification.Initialize<CrossPushNotificationListener>("MYANDROIDSENDERID");
//This service will keep your app receiving push even when closed.
CrossPushNotification.Current.Register();
StartPushService();
RegisterActivityLifecycleCallbacks(this);
}
public static void StartPushService()
{
AppContext.StartService(new Intent(AppContext, typeof(PushNotificationService)));
if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Kitkat)
{
Random rnd = new Random();
// Publish the notification:
PendingIntent pintent = PendingIntent.GetService(AppContext,0, new Intent(AppContext, typeof(PushNotificationService)),0);
AlarmManager alarm = (AlarmManager)AppContext.GetSystemService(Context.AlarmService);
alarm.Cancel(pintent);
}
}
我错过了什么?
答案 0 :(得分:0)
这是来自谷歌的设计模式(我听说同样适用于iOS)因此您可以从本机代码获得多个通知,但您的应用将被Play商店拒绝,并且不遵循Google的模式,因此这样做在为Xamarin编写的推送通知插件中是不可能的。
答案 1 :(得分:0)
实际上这是可能的,我必须去特定平台来实现这一目标。我没有在实现AsyncTask
接口的CrossPushNotificationListener
中定义的PCL
,而是在droid项目中创建了另一个类并实现了IPushNotificationListener
接口,然后用它来初始化推送然后使用IPushNotificationListener
方法添加代码以生成OnMessage
通知,如下所示
Notification.Builder