public static NotificationTrigger triggerFromDictionary(Dictionary <string, object> triggerDictionary) { NotificationTrigger trigger; if (triggerDictionary.ContainsKey("intervalToFire")) { trigger = new TimeIntervalTrigger(int.Parse(triggerDictionary ["intervalToFire"].ToString())); } else { DateComponents dateComponents = new DateComponents(); if (triggerDictionary.ContainsKey("year")) { dateComponents.Year = int.Parse(triggerDictionary ["year"].ToString()); } if (triggerDictionary.ContainsKey("month")) { dateComponents.Month = int.Parse(triggerDictionary ["month"].ToString()); } if (triggerDictionary.ContainsKey("day")) { dateComponents.Day = int.Parse(triggerDictionary ["day"].ToString()); } if (triggerDictionary.ContainsKey("hour")) { dateComponents.Hour = int.Parse(triggerDictionary ["hour"].ToString()); } if (triggerDictionary.ContainsKey("minute")) { dateComponents.Minute = int.Parse(triggerDictionary ["minute"].ToString()); } if (triggerDictionary.ContainsKey("second")) { dateComponents.Second = int.Parse(triggerDictionary ["second"].ToString()); } if (triggerDictionary.ContainsKey("weekday")) { dateComponents.Weekday = int.Parse(triggerDictionary ["weekday"].ToString()); } if (triggerDictionary.ContainsKey("quarter")) { dateComponents.Quarter = int.Parse(triggerDictionary ["quarter"].ToString()); } trigger = new CalendarTrigger(dateComponents); } bool repeats = int.Parse(triggerDictionary ["repeats"].ToString()) == 1 ? true : false; trigger.SetRepeat(repeats); return(trigger); }
//-------------------------------------- // PUBLIC METHODS //-------------------------------------- void OnGUI() { UpdateToStartPos(); UnityEngine.GUI.Label(new UnityEngine.Rect(StartX, StartY, UnityEngine.Screen.width, 40), "Local and Push Notifications", style); StartY += YLableStep; if (UnityEngine.GUI.Button(new UnityEngine.Rect(StartX, StartY, buttonWidth, buttonHeight), "Request Permissions")) { ISN_LocalNotificationsController.Instance.RequestNotificationPermissions(); } StartX += XButtonStep; if (UnityEngine.GUI.Button(new UnityEngine.Rect(StartX, StartY, buttonWidth, buttonHeight), "Print Notification Settings")) { CheckNotificationSettings(); } StartY += YButtonStep; StartX = XStartPos; if (UnityEngine.GUI.Button(new UnityEngine.Rect(StartX, StartY, buttonWidth, buttonHeight), "Schedule Notification Silent")) { ISN_LocalNotificationsController.OnNotificationScheduleResult += OnNotificationScheduleResult; ISN_LocalNotification notification = new ISN_LocalNotification(DateTime.Now.AddSeconds(5), "Your Notification Text No Sound", false); notification.SetData("some_test_data"); notification.Schedule(); lastNotificationId = notification.Id; } StartX += XButtonStep; if (UnityEngine.GUI.Button(new UnityEngine.Rect(StartX, StartY, buttonWidth, buttonHeight), "Schedule Notification")) { ISN_LocalNotificationsController.OnNotificationScheduleResult += OnNotificationScheduleResult; ISN_LocalNotification notification = new ISN_LocalNotification(DateTime.Now.AddSeconds(5), "Your Notification Text", true); notification.SetData("some_test_data"); notification.SetSoundName("purchase_ok.wav"); notification.SetBadgesNumber(1); notification.Schedule(); lastNotificationId = notification.Id; } StartX += XButtonStep; if (UnityEngine.GUI.Button(new UnityEngine.Rect(StartX, StartY, buttonWidth, buttonHeight), "Cancel All Notifications")) { ISN_LocalNotificationsController.Instance.CancelAllLocalNotifications(); IOSNativeUtility.SetApplicationBagesNumber(0); } StartX += XButtonStep; if (UnityEngine.GUI.Button(new UnityEngine.Rect(StartX, StartY, buttonWidth, buttonHeight), "Cansel Last Notification")) { ISN_LocalNotificationsController.Instance.CancelLocalNotificationById(lastNotificationId); } StartX = XStartPos; StartY += YButtonStep; StartY += YLableStep; UnityEngine.GUI.Label(new UnityEngine.Rect(StartX, StartY, UnityEngine.Screen.width, 40), "Local and Push Notifications", style); StartY += YLableStep; StartX = XStartPos; if (UnityEngine.GUI.Button(new UnityEngine.Rect(StartX, StartY, buttonWidth, buttonHeight), "Reg Device For Push Notif. ")) { //ISN_RemotelNotifications.Instance.RegisterForRemoteNotifications (0); ISN_RemoteNotificationsController.Instance.RegisterForRemoteNotifications((ISN_RemoteNotificationsRegistrationResult res) => { Debug.Log("ISN_RemoteNotificationsRegistrationResult: " + res.IsSucceeded); if (!res.IsSucceeded) { Debug.Log(res.Error.Code + " / " + res.Error.Message); } else { Debug.Log(res.Token.DeviceId); } }); } StartX += XButtonStep; if (UnityEngine.GUI.Button(new UnityEngine.Rect(StartX, StartY, buttonWidth, buttonHeight), "Show Game Kit Notification")) { ISN_LocalNotificationsController.Instance.ShowGmaeKitNotification("Title", "Message"); } StartX = XStartPos; StartY += YButtonStep; StartY += YLableStep; UnityEngine.GUI.Label(new UnityEngine.Rect(StartX, StartY, UnityEngine.Screen.width, 40), "User Notifications", style); StartY += YLableStep; StartX = XStartPos; if (UnityEngine.GUI.Button(new UnityEngine.Rect(StartX, StartY, buttonWidth, buttonHeight), "Reg Device For User Notif. ")) { SA.IOSNative.UserNotifications.NotificationCenter.RequestPermissions((result) => { ISN_Logger.Log("RequestPermissions callback" + result.ToString()); }); } StartX += XButtonStep; if (UnityEngine.GUI.Button(new UnityEngine.Rect(StartX, StartY, buttonWidth, buttonHeight), "Schedule for 5 sec")) { var content = new SA.IOSNative.UserNotifications.NotificationContent(); content.Title = "Title_"; content.Subtitle = "Subtitle_"; content.Body = "Body_"; content.Badge = 1; content.Sound = "beep.mp3"; content.UserInfo ["404"] = "test User Info"; var trigger = new SA.IOSNative.UserNotifications.TimeIntervalTrigger(5); var request = new SA.IOSNative.UserNotifications.NotificationRequest("some0id0", content, trigger); ISN_Logger.Log("request Schedule for 5 sec"); SA.IOSNative.UserNotifications.NotificationCenter.AddNotificationRequest(request, (result) => { ISN_Logger.Log("request callback"); ISN_Logger.Log(result.ToString()); }); } StartX += XButtonStep; if (UnityEngine.GUI.Button(new UnityEngine.Rect(StartX, StartY, buttonWidth, buttonHeight), "Schedule by Calendar - Date Components")) { var content = new SA.IOSNative.UserNotifications.NotificationContent(); content.Title = "Calendar - Date Components"; content.Subtitle = "Subtitle_"; content.Body = "Body_"; content.Badge = 1; content.UserInfo ["404"] = "test User Info"; var dateComponents = new SA.IOSNative.UserNotifications.DateComponents() { Second = 32, // You can use any of this fields or their combination; In this example, trigger will fire every 32nd second // public int? Year; // public int? Month; // public int? Day; // public int? Hour; // public int? Minute; // public int? Second; // public int? Weekday; (1 - Sunday, 7 - Saturday) // public int? Quarter; }; var trigger = new SA.IOSNative.UserNotifications.CalendarTrigger(dateComponents); trigger.SetRepeat(true); var request = new SA.IOSNative.UserNotifications.NotificationRequest("some0id1", content, trigger); SA.IOSNative.UserNotifications.NotificationCenter.AddNotificationRequest(request, (result) => { ISN_Logger.Log("request callback"); ISN_Logger.Log(result.ToString()); }); } StartX += XButtonStep; if (UnityEngine.GUI.Button(new UnityEngine.Rect(StartX, StartY, buttonWidth, buttonHeight), "Schedule by Calendar - Date")) { var content = new SA.IOSNative.UserNotifications.NotificationContent(); content.Title = "Calendar - Date"; content.Subtitle = "Subtitle_"; content.Body = "Body_"; content.Badge = 1; content.UserInfo ["404"] = 1; var dateComponents = new SA.IOSNative.UserNotifications.DateComponents() { Second = 32, Year = 2017, Month = 6, Day = 6, Hour = 13, Minute = 01 // You can use any of this fields or their combination; In this example, trigger will fire every Friday, every 32nd second // public int? Year; // public int? Month; // public int? Day; // public int? Hour; // public int? Minute; // public int? Second; // public int? Weekday; (1 - Sunday, 7 - Saturday) // public int? Quarter; }; var trigger = new SA.IOSNative.UserNotifications.CalendarTrigger(dateComponents); var request = new SA.IOSNative.UserNotifications.NotificationRequest("some0id2", content, trigger); SA.IOSNative.UserNotifications.NotificationCenter.AddNotificationRequest(request, (result) => { ISN_Logger.Log("request callback"); ISN_Logger.Log(result.ToString()); }); } StartX += XButtonStep; if (UnityEngine.GUI.Button(new UnityEngine.Rect(StartX, StartY, buttonWidth, buttonHeight), "Cancel All User Notifications")) { SA.IOSNative.UserNotifications.NotificationCenter.CancelAllNotifications(); } StartX += XButtonStep; if (UnityEngine.GUI.Button(new UnityEngine.Rect(StartX, StartY, buttonWidth, buttonHeight), "Cancel some0id2")) { SA.IOSNative.UserNotifications.NotificationCenter.CancelUserNotificationById("some0id2"); } StartX += XButtonStep; if (UnityEngine.GUI.Button(new UnityEngine.Rect(StartX, StartY, buttonWidth, buttonHeight), "Get Pending UserNotifications")) { SA.IOSNative.UserNotifications.NotificationCenter.GetPendingNotificationRequests(requests => { for (int i = 0; i < requests.Count; i++) { ISN_Logger.Log(requests[i].Content.Title); } }); } }