From 5a5a2b696866f947b6025d26c3302e8ffef46435 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 11 一月 2021 16:11:20 +0800
Subject: [PATCH] 2021-01-11 1.更新MQTT连接和本地搜索网关方法。2.子账号相关接口完善

---
 Crabtree/ON.Ios/AppDelegate.cs |  108 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 86 insertions(+), 22 deletions(-)

diff --git a/Crabtree/ON.Ios/AppDelegate.cs b/Crabtree/ON.Ios/AppDelegate.cs
index b59dbb3..884f733 100644
--- a/Crabtree/ON.Ios/AppDelegate.cs
+++ b/Crabtree/ON.Ios/AppDelegate.cs
@@ -6,6 +6,8 @@
 using Microsoft.AppCenter.Analytics;
 using Microsoft.AppCenter.Crashes;
 using Shared;
+using Shared.SimpleControl;
+using SmartHome;
 using UIKit;
 using UserNotifications;
 
@@ -73,11 +75,11 @@
         public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions)
         {
             AppCenter.Start ("44cbdfbf-d33e-4e92-a795-1c4452e54d3e", typeof (Analytics), typeof (Crashes));
-            Console.WriteLine ("FinishedLaunching");
+            Utlis.WriteLine ("FinishedLaunching");
             //Shared.Application.IsGpsEnable = false;
+            //Shared.Application.IsUsePingFang = true;
 
             base.FinishedLaunching (application, launchOptions);
-
 
             SharedMethod.SharedMethod.sharedApp = application;
 
@@ -111,7 +113,7 @@
             }
 
             if (UIApplication.SharedApplication.ApplicationIconBadgeNumber > 0) {
-                RemoteInfo.Current.ReadMsgList (NSUserDefaults.StandardUserDefaults.StringForKey ("PushDeviceToken"), true);
+                //RemoteInfo.Current.ReadMsgList (NSUserDefaults.StandardUserDefaults.StringForKey ("PushDeviceToken"), true);
             }
             //if (UserConfig.Instance.SkinCode == 0) {
                 application.StatusBarStyle = UIStatusBarStyle.DarkContent;
@@ -164,23 +166,23 @@
 
         public override void DidReceiveRemoteNotification (UIApplication application, NSDictionary userInfo, Action<UIBackgroundFetchResult> completionHandler)
         {
-            Console.WriteLine ("DidReceiveRemoteNotification:" + application.ApplicationState.ToString ());
+            Utlis.WriteLine ("DidReceiveRemoteNotification:" + application.ApplicationState.ToString ());
 
             UserConfig.Instance.SaveUserConfig ();
 
-            RemoteInfo.Current.ReadMsgList (NSUserDefaults.StandardUserDefaults.StringForKey ("PushDeviceToken"),
-                                            application.ApplicationState == UIApplicationState.Active ? true : false);
+            //RemoteInfo.Current.ReadMsgList (NSUserDefaults.StandardUserDefaults.StringForKey ("PushDeviceToken"),
+            //                                application.ApplicationState == UIApplicationState.Active ? true : false);
             UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
         }
 
         public override void ReceivedRemoteNotification (UIApplication application, NSDictionary userInfo)
         {
             if (application.ApplicationState == UIApplicationState.Active) {
-                Console.WriteLine ("ReceivedRemoteNotification1");
+                Utlis.WriteLine ("ReceivedRemoteNotification1");
             } else if (application.ApplicationState == UIApplicationState.Background) {
-                Console.WriteLine ("ReceivedRemoteNotification2");
+                Utlis.WriteLine ("ReceivedRemoteNotification2");
             } else if (application.ApplicationState == UIApplicationState.Inactive) {
-                Console.WriteLine ("ReceivedRemoteNotification3");
+                Utlis.WriteLine ("ReceivedRemoteNotification3");
             }
 
             //string extKey1 = "PushResType"; 
@@ -190,38 +192,99 @@
 
         public override void OnResignActivation (UIApplication application)
         {
-            Console.WriteLine ("OnResignActivation");
-            Shared.BusSocket.Stop ();
+            Utlis.WriteLine ("OnResignActivation");
+            //Shared.BusSocket.Stop ();
+            //BusSocketStop ();
         }
 
         public override void DidEnterBackground (UIApplication application)
         {
             SharedMethod.SharedMethod.IsBackground = true;
-            Console.WriteLine ("DidEnterBackground");
+            Utlis.WriteLine ("DidEnterBackground");
+            BusSocketStop ();
         }
 
         public override void WillEnterForeground (UIApplication application)
         {
             SharedMethod.SharedMethod.IsBackground = false;
-            Console.WriteLine ("WillEnterForeground");
+            Utlis.WriteLine ("WillEnterForeground");
             //if (UIApplication.SharedApplication.ApplicationIconBadgeNumber > 0)
             //    RemoteInfo.Current.ReadMsgList (NSUserDefaults.StandardUserDefaults.StringForKey ("PushDeviceToken"), true);
             UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
             // Called as part of the transiton from background to active state.
             // Here you can undo many of the changes made on entering the background.
+            BusSocketStart ();
         }
 
         public override void WillTerminate (UIApplication application)
         {
-            Console.WriteLine ("WillTerminate");
+            Utlis.WriteLine ("WillTerminate");
             // Called when the application is about to terminate. Save data, if needed. See also DidEnterBackground.
         }
 
         public override void OnActivated (UIApplication application)
         {
-            Console.WriteLine ("OnActivated");
+            Utlis.WriteLine ("OnActivated");
             base.OnActivated (application);
 
+            //BusSocketStart ();
+            ////鏈変簺绯荤粺鐗堟湰杩欓噷鍚姩姣旇鍥炬帶鍒跺櫒蹇�
+            //if (!Shared.SimpleControl.MainPage.Showed) {
+            //    System.Threading.Tasks.Task.Run (() => {
+            //        while (true) {
+            //            System.Threading.Thread.Sleep (10);
+            //            if (Shared.SimpleControl.MainPage.Showed) {
+            //                break;
+            //            }
+            //        }
+            //        Shared.Application.RunOnMainThread (() => {
+            //            Shared.BusSocket.Start (6000);
+            //            Shared.SimpleControl.EquipmentPublicClass.CheckLinkRemote ((int)Reachability.InternetConnectionStatus (),false);
+            //            //RemoteInfo.Current.ReadMsgList (NSUserDefaults.StandardUserDefaults.StringForKey ("PushDeviceToken"), true);
+            //            if (SmartHome.WiFiSet.refreshView != null) {
+            //                SmartHome.WiFiSet.refreshView ();
+            //            }
+            //        });
+            //    });
+            //    return;
+            //}
+            //Shared.BusSocket.Start (6000);
+            //Shared.SimpleControl.EquipmentPublicClass.CheckLinkRemote ((int)Reachability.InternetConnectionStatus (), false);
+            //if (SmartHome.WiFiSet.refreshView != null) {
+            //    SmartHome.WiFiSet.refreshView ();
+            //}
+
+
+            //com.freeview.global.Video.FVapplicationDidBecomeActive (application);
+        }
+
+        DateTime closeTime = DateTime.MinValue;
+        /// <summary>
+        /// BusSocketStop
+        /// </summary>
+        void BusSocketStop ()
+        {
+            //杩涘叆鍚庡彴mqtt姝e湪杩炴帴閲嶇疆鐘舵��
+            MqttCommon.remoteMqttIsConnecting = false;
+            Shared.BusSocket.Stop ();
+            closeTime = DateTime.Now;
+        }
+
+
+        /// <summary>
+        /// BusSocketStart
+        /// </summary>
+        void BusSocketStart ()
+        {
+            if (closeTime == DateTime.MinValue) {
+                closeTime = DateTime.Now;
+            } else if (closeTime.AddSeconds (10) < DateTime.Now) {
+                if (CommonPage.IsRemote) {
+                    MqttCommon.DisConnectRemote ("closeTime", false);
+                }
+            }
+
+            var netStatus = (int)Reachability.InternetConnectionStatus ();
             //鏈変簺绯荤粺鐗堟湰杩欓噷鍚姩姣旇鍥炬帶鍒跺櫒蹇�
             if (!Shared.SimpleControl.MainPage.Showed) {
                 System.Threading.Tasks.Task.Run (() => {
@@ -233,23 +296,24 @@
                     }
                     Shared.Application.RunOnMainThread (() => {
                         Shared.BusSocket.Start (6000);
-                        Shared.SimpleControl.EquipmentPublicClass.CheckLinkRemote ((int)Reachability.InternetConnectionStatus (),false);
-                        //RemoteInfo.Current.ReadMsgList (NSUserDefaults.StandardUserDefaults.StringForKey ("PushDeviceToken"), true);
+                        Shared.SimpleControl.EquipmentPublicClass.CheckLinkRemote (netStatus, false);
+                        //RemoteInfo.Current.ReadMsgList (true);
                         if (SmartHome.WiFiSet.refreshView != null) {
                             SmartHome.WiFiSet.refreshView ();
                         }
                     });
                 });
                 return;
+            } else {
+                Shared.BusSocket.Start (6000);
+                Shared.SimpleControl.EquipmentPublicClass.CheckLinkRemote (netStatus, false);
+                //RemoteInfo.Current.ReadMsgList (true);
             }
-            Shared.BusSocket.Start (6000);
-            Shared.SimpleControl.EquipmentPublicClass.CheckLinkRemote ((int)Reachability.InternetConnectionStatus (), false);
             if (SmartHome.WiFiSet.refreshView != null) {
                 SmartHome.WiFiSet.refreshView ();
             }
-
-
-            //com.freeview.global.Video.FVapplicationDidBecomeActive (application);
+            if (netStatus == 0)
+                return;
         }
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0