显示在单击通知时调用本地通知的内容页面

时间:2017-11-23 16:35:47

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

我对Xamarin来说相对较新,并且已经在我的应用程序中得到了一个我希望收到通知的地方,我使用本地通知向用户显示他们收到了我的某个人的消息应用。虽然我可以收到要显示的通知,但是当它点击它时,它既不会显示任何内容,也不会重新显示"重新启动"应用程序(将用户带回登录页面)。

如何在点击通知时显示通知以显示设置页面,例如我的联系人页面?

1 个答案:

答案 0 :(得分:1)

  

如何在点击通知时显示通知以显示设置页面,例如我的联系人页面?

for each只有一项活动,无论您创建了多少页,都会在Xamarin.Forms上创建。

但我们仍然可以找到解决方法:

  1. 创建本地通知,旨在指明您要导航到哪个页面(MainActivity):

    Page1
  2. Notification.Builder builder = new Notification.Builder(Xamarin.Forms.Forms.Context); Intent intent = new Intent(Xamarin.Forms.Forms.Context, typeof(MainActivity)); Bundle bundle = new Bundle(); // if we want to navigate to Page1: bundle.PutString("pageName", "Page1"); intent.PutExtras(bundle); PendingIntent pIntent = PendingIntent.GetActivity(Xamarin.Forms.Forms.Context, 0, intent, 0); builder.SetContentTitle(title) .SetContentText(text) .SetSmallIcon(Resource.Drawable.icon) .SetContentIntent(pIntent); var manager = (NotificationManager)Xamarin.Forms.Forms.Context.GetSystemService("notification"); manager.Notify(1, builder.Build()); MainActivity.cs我们使用反射来设置应用OnCreate

    MainPage
  3. 注意:此变通方法会修改PCL protected override void OnCreate(Bundle bundle) { TabLayoutResource = Resource.Layout.Tabbar; ToolbarResource = Resource.Layout.Toolbar; base.OnCreate(bundle); global::Xamarin.Forms.Forms.Init(this, bundle); var myApp = new App(); var mBundle = Intent.Extras; if (mBundle != null) { var pageName = mBundle.GetString("pageName"); if (!string.IsNullOrEmpty(pageName)) { //get the assemblyQualifiedName of page var pageAssemblyName = "Your_PCL_Name." + pageName+",Your_PCL_Name"; Type type = Type.GetType(pageAssemblyName); if (type != null) { var currentPage = Activator.CreateInstance(type); //set the main page myApp.MainPage = (Page)currentPage; } } } //load myApp LoadApplication(myApp); } 的{​​{1}},如果您对此属性有用,请正确修改逻辑。