Example #1
0
        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);
        }
Example #3
0
 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);
                }
            });
        }
    }