public NotificationRequest(string data) { Dictionary <string, object> notificationDictionary = (Dictionary <string, object>)SA.Common.Data.Json.Deserialize(data); _Id = (string)notificationDictionary ["id"]; Dictionary <string, object> contentDictionary = (Dictionary <string, object>)notificationDictionary ["content"]; Dictionary <string, object> triggerDictionary = (Dictionary <string, object>)notificationDictionary ["trigger"]; _Content = new NotificationContent(contentDictionary); _Trigger = NotificationTrigger.triggerFromDictionary(triggerDictionary); }
public static void AddNotificationRequest(NotificationRequest request, Action <SA.Common.Models.Result> callback) { string notificationID = request.Id; NotificationContent content = request.Content; OnCallbackDictionary [notificationID] = callback; // storing callback in dictionary for future call string jsonString = "{" + string.Format("\"id\" : \"{0}\", \"content\" : {1}, \"trigger\" : {2}", notificationID, request.Content.ToString(), request.Trigger.ToString()) + "}"; ScheduleUserNotification(jsonString); }
public NotificationRequest(string id, NotificationContent content, NotificationTrigger trigger) { _Id = id; _Content = content; _Trigger = 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); } }); } }