示例#1
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            registry = new PKPushRegistry(null);
            registry.DesiredPushTypes = new NSSet(new string[] { PKPushType.Voip });
        }
示例#2
0
        void RegisterVoip()
        {
            var            mainQueue    = DispatchQueue.MainQueue;
            PKPushRegistry voipRegistry = new PKPushRegistry(mainQueue);

            voipRegistry.Delegate         = this;
            voipRegistry.DesiredPushTypes = new NSSet(new string[] { PushKit.PKPushType.Voip });
        }
示例#3
0
 public void DidUpdatePushCredentials(PKPushRegistry registry, PKPushCredentials credentials, string type)
 {
     if (credentials != null && credentials.Token != null)
     {
         var fullToken = credentials.Token.ToString();
         token = fullToken.Trim('<').Trim('>').Replace(" ", string.Empty);
         Console.WriteLine("Token is " + token);
     }
 }
示例#4
0
        public void DidReceiveIncomingPush(PKPushRegistry registry, PKPushPayload payload, string type)
        {
            Console.WriteLine("My push is coming!");
            var      aps      = payload.DictionaryPayload.ObjectForKey(new NSString("aps")) as NSDictionary;
            NSString alertKey = new NSString("alert");

            if (aps.ContainsKey(alertKey))
            {
                UILocalNotification notification = new UILocalNotification();
                notification.FireDate  = NSDate.Now;
                notification.AlertBody = aps.ObjectForKey(alertKey) as NSString;
                notification.TimeZone  = NSTimeZone.DefaultTimeZone;
                notification.SoundName = UILocalNotification.DefaultSoundName;
                notification.ApplicationIconBadgeNumber = 1;
                UIApplication.SharedApplication.ScheduleLocalNotification(notification);
            }
        }
示例#5
0
        public void CtorDispatchQueue()
        {
            TestRuntime.AssertSystemVersion(PlatformName.iOS, 8, 0, throwIfOtherPlatform: false);

            if (!TestRuntime.CheckSystemVersion(PlatformName.iOS, 8, 2, throwIfOtherPlatform: false) && IntPtr.Size == 4)
            {
                Assert.Inconclusive("Requires iOS 8.2 or later in 32-bit mode.");
            }

            using (var dq = new DispatchQueue("pk-test-queue"))
                using (var pr = new PKPushRegistry(dq)) {
                    Assert.Null(pr.Delegate, "Delegate");
                    Assert.Null(pr.DesiredPushTypes, "DesiredPushTypes");
                    Assert.Null(pr.WeakDelegate, "WeakDelegate");

                    // it's nullable (setting a value needs more app setup or ObjC exceptions will occurs later)
                    pr.DesiredPushTypes = null;
                    Assert.Null(pr.DesiredPushTypes, "DesiredPushTypes-2");
                }
        }
示例#6
0
        public void CtorDispatchQueue()
        {
            if (!UIDevice.CurrentDevice.CheckSystemVersion(8, 0))
            {
                Assert.Inconclusive("Requires iOS8 or later");
            }

            if (!UIDevice.CurrentDevice.CheckSystemVersion(8, 2) && IntPtr.Size == 4)
            {
                Assert.Inconclusive("Requires iOS 8.2 or later in 32-bit mode.");
            }

            using (var dq = new DispatchQueue("pk-test-queue"))
                using (var pr = new PKPushRegistry(dq)) {
                    Assert.Null(pr.Delegate, "Delegate");
                    Assert.Null(pr.DesiredPushTypes, "DesiredPushTypes");
                    Assert.Null(pr.WeakDelegate, "WeakDelegate");

                    // it's nullable (setting a value needs more app setup or ObjC exceptions will occurs later)
                    pr.DesiredPushTypes = null;
                    Assert.Null(pr.DesiredPushTypes, "DesiredPushTypes-2");
                }
        }