iOS从本地通知打开页面

我目前使用UNUserNotificationCenter在OS10的指定时间发出本地通知。 我试图找出当用户点击本地通知时如何在我的应用程序中打开特定的页面。

任何人如何做到这一点我真的很新,在C#编程的iOS,我敢肯定它并不罕见的事情要做。

  UNDelegate _delegate; public override UIWindow Window { get; set; } public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { UNUserNotificationCenter center = UNUserNotificationCenter.Current; _delegate = new UNDelegate(); center.Delegate = _delegate; center.RequestAuthorization(UNAuthorizationOptions.Alert, (bool a, NSError error) => { }); center.GetNotificationSettings((UNNotificationSettings setting) => {}); registerNotification(); return true; } public void registerNotification() { UNMutableNotificationContent content = new UNMutableNotificationContent(); content.Body = "body"; content.Title = "title"; content.Sound = UNNotificationSound.Default; NSDateComponents components = new NSDateComponents(); components.Weekday = 2; components.Hour = 8; UNCalendarNotificationTrigger trigger = UNCalendarNotificationTrigger.CreateTrigger(components, true); UNNotificationRequest request = UNNotificationRequest.FromIdentifier("ABC", content, trigger); UNUserNotificationCenter.Current.AddNotificationRequest(request, (NSError error) => { }); } public class UNDelegate : UNUserNotificationCenterDelegate { public override void WillPresentNotification(UNUserNotificationCenter center, UNNotification notification, Action<UNNotificationPresentationOptions> completionHandler) { completionHandler(UNNotificationPresentationOptions.Sound | UNNotificationPresentationOptions.Alert); } public override void DidReceiveNotificationResponse(UNUserNotificationCenter center, UNNotificationResponse response, Action completionHandler) { AppDelegate app = (AppDelegate)UIApplication.SharedApplication.Delegate; app.Window.RootViewController.PresentViewController(new ViewController1(), true, null); } } 

UNUserNotificationCenter.Current

获取UNUserNotificationCenter的单例实例

代表

接收来自UNUserNotificationCenter的事件

WillPresentNotification :调用将通知传递给在前台运行的应用程序。 如果您想在前台显示通知,请参阅代码,它将显示声音和警报内容。

DidReceiveNotificationResponse :在用户从应用程序的通知中select一个动作之后调用。 当你点击通知并进入应用程序,这个function将被调用。 然后在你的第一篇文章中打开一个特定的页面。

RequestAuthorization

请求指定选项的通知授权,并处理请求的结果。所有支持通知传递的应用程序都需要请求授权。 当您的应用第一次请求授权时,用户会收到警报,并有机会拒绝或授予该授权。

GetNotificationSettings

返回应用程序的通知设置对象,在返回之前对其进行处理。

UNMutableNotificationContent

系统生成的对象,其中包含通知的各个部分,包括文本,声音,徽章和启动图像,附件等。 它显示在通知中。

UNCalendarNotificationTrigger

触发在指定的一天或一段时间内发送通知,一次或多次。 它将在星期一的8:00在我的代码中发送通知。

UNNotificationRequest

包含开发人员从UNUserNotificationCenter请求的通知的内容和触发器。

AddNotificationRequest

使用指定的completionHandler添加请求指定的本地通知。

还有很多function和类我没有提到。 例如,

UNNotificationAttachment(与通知一起显示的audio,video或图像)UNNotificationAction(可响应通知而执行的操作。)UNNotificationCategory(实现一组操作和选项,它们组成一类通知。

但你的要求可以满足我的代码。 更多信息

联合国使用通知中心在Xamarin

UNUserNotificationCenter在应用程序文档