wei
2020-12-22 d07d62be7111d78b2aaa44c9cdee23a7d22b4dda
HDL-ON_iOS/AppDelegate.cs
@@ -16,7 +16,7 @@
    {
        public static UIApplication sharedApp;
        public static PageLayout CurPageLayout = null;
        public static bool IsBackground;
        //public static bool IsBackground;
        //public static string CheckVersion()
        //{
@@ -99,18 +99,23 @@
                // Save new device token 
                NSUserDefaults.StandardUserDefaults.SetString(DeviceToken, "PushDeviceToken");
                string userPhoneName = UIDevice.CurrentDevice.Name;
                UserInfo.Current.PushDeviceToken = DeviceToken;
                UserInfo.Current.PhoneName = userPhoneName;
                UserInfo.Current.SaveUserInfo();
                //UserInfo.Current.PushDeviceToken = DeviceToken;
                //UserInfo.Current.PhoneName = userPhoneName;
                //UserInfo.Current.SaveUserInfo();
                OnAppConfig.Instance.PushDeviceToken = DeviceToken;
                OnAppConfig.Instance.PhoneName = UIDevice.CurrentDevice.Name;
                OnAppConfig.Instance.SaveConfig();
            }
            if (UserInfo.Current.PushDeviceToken != DeviceToken)
            if (OnAppConfig.Instance.PushDeviceToken != DeviceToken)
            {
                string userPhoneName = UIDevice.CurrentDevice.Name;
                UserInfo.Current.PushDeviceToken = DeviceToken;
                UserInfo.Current.PhoneName = userPhoneName;
                UserInfo.Current.SaveUserInfo();
                //string userPhoneName = UIDevice.CurrentDevice.Name;
                //UserInfo.Current.PushDeviceToken = DeviceToken;
                //UserInfo.Current.PhoneName = userPhoneName;
                //UserInfo.Current.SaveUserInfo();
                OnAppConfig.Instance.PushDeviceToken = DeviceToken;
                OnAppConfig.Instance.PhoneName = UIDevice.CurrentDevice.Name;
                OnAppConfig.Instance.SaveConfig();
            }
        }
@@ -165,24 +170,27 @@
        public override void OnResignActivation(UIApplication application)
        {
            Console.WriteLine("OnResignActivation");
            OnAppConfig.Instance.unlockTime = DateTime.Now;
            //BusSocket.Stop();
            UserInfo.Current.unlockTime = DateTime.Now;
        }
        public override void DidEnterBackground(UIApplication application)
        {
            SharedMethod.SharedMethod.IsBackground = true;
            //SharedMethod.SharedMethod.IsBackground = true;
            //MainPage.IsEnterBackground = true;
            ////进入后台mqtt正在连接重置状态
            //HDL_ON.DAL.Mqtt.MqttClient.RemoteMqttIsConnecting = false;
            //HDL_ON.DriverLayer.UdpSocket._BusSocket.Stop();
            //进入后台
            BusSocketStop();
            Console.WriteLine("DidEnterBackground");
        }
        public override void WillEnterForeground(UIApplication application)
        {
            SharedMethod.SharedMethod.IsBackground = false;
            //BusSocket.Start();
            new AppUnlockPage().LoadPage();
            //回到前台,处理事件
            BusSocketStart();
            Console.WriteLine("WillEnterForeground");
            UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
        }
        public override void WillTerminate(UIApplication application)
@@ -194,29 +202,37 @@
        {
            Console.WriteLine("OnActivated");
            base.OnActivated(application);
            HDL_ON.DriverLayer.Control.Ins.SearchLoaclGateway();
            //if (haveToSignOut == true)
            //{
                ////强制下线
                //UserInfo.Current.LastTime = DateTime.MinValue;
                //UserInfo.Current.headImagePagePath = "LoginIcon/2.png";//重置用户头像
                //UserInfo.Current.SaveUserInfo();
                //HDLCommon.Current.ShowAlert(Language.StringByID(StringId.LoggedOnOtherDevices));
            ////强制下线
            //UserInfo.Current.LastTime = DateTime.MinValue;
            //UserInfo.Current.headImagePagePath = "LoginIcon/2.png";//重置用户头像
            //UserInfo.Current.SaveUserInfo();
            //HDLCommon.Current.ShowAlert(Language.StringByID(StringId.LoggedOnOtherDevices));
            //}
        }
        public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
        {
            //Shared.Application.FontSize = 12;
            //Bugly.Bugly.StartWithAppId("b58fb35436");
            //取消EditText默认密码输入方式
            Shared.Application.IsEditTextContentTypePassword = false;
            //默认使用苹方字体
            Shared.Application.IsUsePingFang = true;
            //保持屏幕常亮或者自动锁屏
            application.IdleTimerDisabled = false;
            Window = new UIWindow(UIScreen.MainScreen.Bounds);
            rootViewController = new UINavigationController(new ViewController()) { NavigationBarHidden = true };
            Window.RootViewController = rootViewController;
            Window.MakeKeyAndVisible();
            AppCenter.Start("e1add75a-82c6-4a5c-a902-4705b195748e",typeof(Analytics), typeof(Crashes));
            //AppCenter.Start("e1add75a-82c6-4a5c-a902-4705b195748e",typeof(Analytics), typeof(Crashes));
            base.FinishedLaunching(application, launchOptions);
            SharedMethod.SharedMethod.sharedApp = application;
@@ -233,7 +249,7 @@
            //    OnAppConfig.Instance.SaveUserConfig();
            //}
            application.IdleTimerDisabled = true;
            application.RegisterForRemoteNotificationTypes(UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge | UIRemoteNotificationType.Sound);
            //window.AccessibilityNavigationStyle = UIAccessibilityNavigationStyle.Automatic;
@@ -283,15 +299,35 @@
                    var body = alert["body"] as NSString;
                    var title = alert["title"] as NSString;
                    var expandData = "";
                    var messageType = "";
                    if (userInfo.ContainsKey(new NSString("expandData")))
                    {
                        expandData = userInfo["expandData"] as NSString;
                        var expandDataStr = userInfo["expandData"] as NSString;
                        if(expandDataStr == null)
                        {
                            var expandDataNSD = userInfo["expandData"] as NSDictionary;
                            if (expandDataNSD != null)
                            {
                                expandData = expandDataNSD.ToString();
                                if(expandDataNSD.ContainsKey(new NSString("messageType"))){
                                    messageType = expandDataNSD["messageType"] as NSString;
                                    Utlis.WriteLine("messageType: "+ messageType);
                                }
                            }
                        }
                        else
                        {
                            expandData = expandDataStr;
                        }
                    }
                    var pushMes = new JPushMessageInfo()
                    {
                        Title = title,
                        Content = body,
                        Extras = expandData,
                        messageType = messageType
                    };
                    System.Console.WriteLine("PushMes title : " + pushMes.Title);
                    System.Console.WriteLine("PushMes message : " + pushMes.Content);
@@ -299,7 +335,7 @@
                    if (bFinishedLaunching)
                    {
                        if (pushMes.Extras != null && pushMes.Extras.Contains("Offline"))
                        if (pushMes.Extras != null && pushMes.Extras.Contains("OffLine"))
                        {
                            //haveToSignOut = true;
                            //强制下线
@@ -349,7 +385,47 @@
            }
        }
        /// <summary>
        /// 进入后台的时间
        /// </summary>
        DateTime CloseTime = DateTime.Now;
        /// <summary>
        /// 进入后台处理时间
        /// BusSocketStop
        /// </summary>
        void BusSocketStop()
        {
            //SharedMethod.SharedMethod.IsBackground = true;
            CloseTime = DateTime.Now;
            MainPage.IsEnterBackground = true;
            //进入后台mqtt正在连接重置状态
            HDL_ON.DAL.Mqtt.MqttClient.RemoteMqttIsConnecting = false;
            HDL_ON.DriverLayer.UdpSocket._BusSocket.Stop();
        }
        /// <summary>
        /// 回到前台,处理事件
        /// </summary>
        void BusSocketStart()
        {
            if (CloseTime.AddSeconds(10) < DateTime.Now)
            {
                //后台超过10s就断开MQTT重连
                if (HDL_ON.DriverLayer.Control.Ins.IsRemote)
                {
                    HDL_ON.DAL.Mqtt.MqttClient.DisConnectRemote("closeTime", false);
                }
            }
            MainPage.IsEnterBackground = false;
            HDL_ON.DriverLayer.UdpSocket._BusSocket.Start();
            new AppUnlockPage().LoadPage();
            UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
            HDL_ON.DriverLayer.Control.Ins.SearchLoaclGateway();
        }
    }