Xamarin.Forms使用相同的信息打开通知OnClick

时间:2017-02-08 11:41:34

标签: c# android xamarin.android xamarin.forms portable-class-library

我在android项目中使用 Xamarin.forms ,我正在尝试推送通知并且它工作正常,但我正在搜索以允许用户以相同的标题显示全屏大小的通知和相同的内容(也许我需要在新的Android活动上打开它?!) 在下面我的代码:

var notification = new Notification.Builder (Application.Context)
                .SetContentTitle (message.Short_Message.ToString ())
                .SetContentText (message.Long_Message.ToString())
                .SetSmallIcon (Resource.Mipmap.ic_launcher)  
                .SetStyle(new Notification.BigTextStyle().BigText(message.Long_Message))   
                .SetPriority((int)NotificationPriority.Max)                      
                .Build ();

            var manager = Application.Context.GetSystemService (Application.NotificationService) as NotificationManager;
            manager.Notify (message.ID, notification);

2 个答案:

答案 0 :(得分:0)

作为一般规则,我们尽可能少地使用本机项目。 当人们点击通知时,我们会将他们带到表单应用并显示信息。

您是否有特殊原因打开表单项目以显示内容?您可以将属性注入App类。

如果您出于某种原因需要留在Android项目中,我相当确定您需要开设一项新活动。通知是他们听起来像是一个通知,一个完整的页面视图。您可以将您的值转移到捆绑包中。

答案 1 :(得分:0)

请检查以下代码:

var manager =
    (NotificationManager)context.GetSystemService(Context.NotificationService);

var intent =
    context.PackageManager.GetLaunchIntentForPackage(context.PackageName);
intent.AddFlags(ActivityFlags.ClearTop);

var pendingIntent = PendingIntent.GetActivity(context, 0, intent, PendingIntentFlags.UpdateCurrent);

var message = "Hello, Sigma!";
var builder = new NotificationCompat.Builder(context)
    .SetSmallIcon(Android.Resource.Drawable.TitleBar)
    .SetContentTitle("Hello!")
    .SetStyle(new NotificationCompat.BigTextStyle().BigText(message))
    .SetContentText(message)
    .SetContentIntent(pendingIntent);

manager.Notify(1, builder.Build());