当前位置: 首页 > 知识库问答 >
问题:

PutExtra值未从使用xamarin表单和android的推送通知传递给mainactivity

别锐
2023-03-14
 var uiIntent = new Intent(this, typeof(MainActivity));
 uiIntent.PutExtra("param", "54");
 var pendingIntent = PendingIntent.GetActivity(this, 0, uiIntent, 0);
        string parameterValue = this.Intent.GetStringExtra("param");
        if (parameterValue != null)
        {
            LoadApplication(new App(parameterValue));
        }
        else
        {
            LoadApplication(new App(null));
        }
 private void CreateNotification(string title, string desc)
    {
        //Create notification
        var notificationManager = GetSystemService(Context.NotificationService) as NotificationManager;

        Intent startupIntent = new Intent(this, typeof(MainActivity));
        startupIntent.PutExtra("param", "54");
        Android.App.TaskStackBuilder stackBuilder = Android.App.TaskStackBuilder.Create(this);
        stackBuilder.AddParentStack(Java.Lang.Class.FromType(typeof(MainActivity)));
        stackBuilder.AddNextIntent(startupIntent);
        const int pendingIntentId = 0;
        PendingIntent pendingIntent =
                       stackBuilder.GetPendingIntent(pendingIntentId, PendingIntentFlags.OneShot);

      //  var pendingIntent = PendingIntent.GetActivity(this, 0, startupIntent, 0);


        ////Create an intent to show ui
        //var uiIntent = new Intent(this, typeof(MainActivity));
        //uiIntent.PutExtra("param", "54");
        //var pendingIntent = PendingIntent.GetActivity(this, 0, uiIntent, 0);


        //Create the notification using Notification.Builder
        //Use Android Compatibility Apis

        var notification = new NotificationCompat.Builder(this).SetContentTitle(title)
            .SetSmallIcon(Android.Resource.Drawable.SymActionEmail)
            //we use the pending intent, passing our ui intent over which will get called
            //when the notification is tapped.
            .SetContentIntent(pendingIntent)
            .SetContentText(desc)
            .SetSound(RingtoneManager.GetDefaultUri(RingtoneType.Notification))

             //Auto cancel will remove the notification once the user touches it
             .SetAutoCancel(true).
            Build();


        //Show the notification
        if (notificationManager != null)
        {
            notificationManager.Notify(1, notification);
        }
    }

full方法使用不同的方法,但值仍然不会传递给mainActivity。总是有一个空的?

共有1个答案

程谭三
2023-03-14

这就是它对我起作用的原因。

最初是RegisterInGcm();在parameterValue之上,但将其移动到下面可以使其工作。

//RegisterInGcm(); Wrong

        string parameterValue = this.Intent.GetStringExtra("param");
        if (parameterValue != null)
        {
             LoadApplication(new App(parameterValue));
        }
        else
        {
            LoadApplication(new App(null));
        }

        RegisterInGcm();

疯狂的简单改变,许多测试要做!!

 类似资料:
  • 我已经为我的Xamarin.Forms UWP应用程序实现了一个推送通知功能,我可以接收通知,然后弹出一个祝酒词。我正在使用下面的代码。 当用户单击/轻击通知时,我想从我的PCL项目中打开一个特定的页面,并将这个变量作为参数传递。我怎么能这么做?如有任何帮助,我们将不胜感激。

  • 我有一个使用Xamarin.Forms的应用程序,针对IOS,Android和WP 8。 我的应用中需要推送通知功能。 我看过<code>pushsharp</code>演示,它似乎很有前途。但我看到的所有代码都是针对每个平台分别编写的。 我希望这件事能在法庭上进行。Forms项目,在App.cs中的某个地方,这样我就不需要重复注册设备的代码,也不需要处理应该如何处理推送通知。 任何帮助都将不胜感

  • 我在Xamarin表单应用程序上使用推送通知时遇到图标徽章问题。我正在使用Firebase将应用程序发送到两台设备。 我让徽章在android上工作的方式是,该应用程序从有效负载的“数据”部分获取完整的通知信息。当通知只有一个数据部分时,我可以触发一个功能,设置徽章并显示弹出通知。如果我把相同的信息放在“通知”部分,我就不能触发设置徽章。 对于iOS,徽章计数从负载的通知部分发送。iOS看不到数据

  • 问题内容: 我已经通过FCM在我的两个相关应用程序中成功实现了推送通知,同时尝试实现一些逻辑以在接收到通知时增加徽章编号。 我意识到完全没有调用委托方法,因为我没有得到任何印刷品,但是我确实从和获得印刷品。因此,设置在没有任何效果,但在设置它一样。 应该调用文档后的内容,但是通知到达时我永远不会从中得到打印结果。 我尝试注释掉整个方法,并且通知仍在传递。 为什么会这样呢?我想我不太了解在此设置中谁

  • 我正在rails 5中编写一个Api Rest,使用gem'fcm'发送通知。我已经在android应用程序中配置了firebase,我可以从firebase控制台成功发送通知,但从rails api我无法在设备中接收通知,这是我的代码: 这是我的rails控制器: 我从邮递员执行这是执行控制器的路线: http://localhost:3000/acciones/enviar?here 将设备令

  • 我的程序显示一行水平滑动的按钮,其中包含艺术作品的文字描述。单击按钮时,ImageActivity启动以显示相应的艺术品。但是,当我点击任何文本按钮时,它总是显示数组中最后一幅画。 我试图将int ID传递给第二个活动,以便一旦单击相应的描述,它将显示正确的绘画。 非常感谢。 以下是我的主要活动: 我正在尝试将整数ID传递给: } 还有绘画数据库,我要从那里获取身份: