From dc9a1b15bb69227e19afc070adf58156a362d2a2 Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期一, 30 九月 2024 17:07:58 +0800
Subject: [PATCH] 安卓可视对讲响铃,

---
 HDL-ON_iOS/AppDelegate.cs |  216 ++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 144 insertions(+), 72 deletions(-)

diff --git a/HDL-ON_iOS/AppDelegate.cs b/HDL-ON_iOS/AppDelegate.cs
index 0c0bd64..a6a7280 100644
--- a/HDL-ON_iOS/AppDelegate.cs
+++ b/HDL-ON_iOS/AppDelegate.cs
@@ -3,13 +3,12 @@
 using HDL_ON;
 using Shared;
 using UIKit;
-using UserNotifications;
-using Microsoft.AppCenter;
-using Microsoft.AppCenter.Analytics;
-using Microsoft.AppCenter.Crashes;
 using HDL_ON.UI;
 using HDL_ON.DAL.Server;
-using Intents;
+using System.Threading.Tasks;
+using UserNotifications;
+using Other;
+using AVFoundation;
 
 namespace SharedMethod
 {
@@ -54,17 +53,22 @@
             set;
         }
 
-        //public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
-        //{
-        //    // Override point for customization after application launch.
-        //    // If not required for your application you can safely delete this method
-        //    return true;
-        //}
         public static UINavigationController rootViewController;
 
-        public static void CleanApplicationIconBadgeNumber()
+        //public static void CleanApplicationIconBadgeNumber()
+        //{
+        //    UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
+        //}
+        
+        [Export("application:shouldAllowExtensionPointIdentifier:")]
+        public override bool ShouldAllowExtensionPointIdentifier(UIApplication application, NSString extensionPointIdentifier)
         {
-            UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
+            //if (extensionPointIdentifier == UIApplicationKeyboardExtensionPointIdentifier)
+            //{
+            //    return false;
+            //}
+            return true;
+
         }
 
         public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
@@ -93,6 +97,7 @@
             // Get previous device token
             var oldDeviceToken = NSUserDefaults.StandardUserDefaults.StringForKey("PushDeviceToken");
 
+
             // Has the token changed?
             if (string.IsNullOrEmpty(oldDeviceToken) || !oldDeviceToken.Equals(DeviceToken))
             {
@@ -101,19 +106,12 @@
                 // Save new device token 
                 NSUserDefaults.StandardUserDefaults.SetString(DeviceToken, "PushDeviceToken");
 
-                //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 (OnAppConfig.Instance.PushDeviceToken != DeviceToken)
             {
-                //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();
@@ -122,26 +120,16 @@
 
         public override void DidReceiveRemoteNotification(UIApplication application, NSDictionary userInfo, Action<UIBackgroundFetchResult> completionHandler)
         {
-            Console.WriteLine("DidReceiveRemoteNotification:" + application.ApplicationState.ToString());
-
-            //璇诲彇鎺ㄩ�佷俊鎭�
-            UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
-
             if (userInfo == null)
             {
                 return;
             }
 
-            Console.WriteLine(userInfo);
-            //HDLCommon.Current.ShowAlert("DidReceiveRemoteNotification:" + userInfo.ToString());
-
-
-            if (application.ApplicationState == UIApplicationState.Active || application.ApplicationState == UIApplicationState.Background)
-            {
-
-                HandleNotificationMessageUserInfo(userInfo, false);
-            }
-            else
+            //if (application.ApplicationState == UIApplicationState.Active || application.ApplicationState == UIApplicationState.Background)
+            //{
+            //    HandleNotificationMessageUserInfo(userInfo, false);
+            //}
+            //else
             {
                 //Inactive
                 HandleNotificationMessageUserInfo(userInfo, false);
@@ -164,20 +152,30 @@
             {
                 Console.WriteLine("ReceivedRemoteNotification3");
             }
-
-            //string extKey1 = "PushResType"; 
-            //NSString extValue1 = userInfo.ValueForKey ((NSString)extKey1);
-
         }
 
         public override void OnResignActivation(UIApplication application)
         {
+            //璁剧疆鍏ㄨ閫氱姸鎬�
+            //string systemVersion = UIKit.UIDevice.CurrentDevice.SystemVersion;
+            //string errorVersion = "16.2.0";
+            //if (systemVersion.CompareTo(errorVersion) < 0)///鍏ㄨ閫氫笉鍏煎ios16浠ヤ笂鐨勭郴缁燂紝涓嶈鍔犺浇杩欎釜鍏�
+            //{
+            //    Shared.IOS.HDLFVSDK.Video.FVapplicationWillResignActive(application);
+            //}
             Console.WriteLine("OnResignActivation");
-            UserInfo.Current.unlockTime = DateTime.Now;
+            //UserInfo.Current.unlockTime = DateTime.Now;
         }
 
         public override void DidEnterBackground(UIApplication application)
         {
+            //璁剧疆鍏ㄨ閫氱姸鎬�
+            //string systemVersion = UIKit.UIDevice.CurrentDevice.SystemVersion;
+            //string errorVersion = "16.2.0";
+            //if (systemVersion.CompareTo(errorVersion) < 0)///鍏ㄨ閫氫笉鍏煎ios16浠ヤ笂鐨勭郴缁燂紝涓嶈鍔犺浇杩欎釜鍏�
+            //{
+            //    Shared.IOS.HDLFVSDK.Video.FVapplicationDidEnterBackground(application);
+            //}
             //SharedMethod.SharedMethod.IsBackground = true;
             //MainPage.IsEnterBackground = true;
             ////杩涘叆鍚庡彴mqtt姝e湪杩炴帴閲嶇疆鐘舵��
@@ -203,7 +201,15 @@
 
         public override void OnActivated(UIApplication application)
         {
+            //璁剧疆鍏ㄨ閫氱姸鎬�
+            //string systemVersion = UIKit.UIDevice.CurrentDevice.SystemVersion;
+            //string errorVersion = "16.2.0";
+            //if (systemVersion.CompareTo(errorVersion) < 0)///鍏ㄨ閫氫笉鍏煎ios16浠ヤ笂鐨勭郴缁燂紝涓嶈鍔犺浇杩欎釜鍏�
+            //{
+            //    Shared.IOS.HDLFVSDK.Video.FVapplicationDidBecomeActive(application);
+            //}
             Console.WriteLine("OnActivated");
+
             base.OnActivated(application);
             //HDL_ON.DriverLayer.Control.Ins.SearchLoaclGateway();
 
@@ -223,37 +229,72 @@
         /// </summary>
         void SetCurrentLanguage()
         {
-            if (string.IsNullOrEmpty(OnAppConfig.Instance.SetLanguage))
-            {
+            //if (string.IsNullOrEmpty(OnAppConfig.Instance.SetLanguage))
+            //{
                 if (NSLocale.PreferredLanguages[0].Contains("zh-"))
                 {
                     Language.CurrentLanguage = "Chinese";
                 }
-                else if (NSLocale.PreferredLanguages[0].Contains("cs-"))
-                {
-                    Language.CurrentLanguage = "Czech";
-                }
+                //else if (NSLocale.PreferredLanguages[0].Contains("cs-"))
+                //{
+                //    Language.CurrentLanguage = "Czech";
+                //}
                 else if (NSLocale.PreferredLanguages[0].Contains("ru-"))
                 {
                     Language.CurrentLanguage = "russian";
                 }
+                else if (NSLocale.PreferredLanguages[0].Contains("bul"))
+                {
+                    Language.CurrentLanguage = "斜褗谢谐邪褉褋泻懈";
+                }
+                else if (NSLocale.PreferredLanguages[0].Contains("es-"))
+                {
+                    Language.CurrentLanguage = "Spanish";
+                }
+                //else if(NSLocale.PreferredLanguages[0].Contains("uk-")){
+                //    Language.CurrentLanguage = "Ukraine";
+                //}
                 else
                 {
                     Language.CurrentLanguage = "English";
                 }
-            }
-            else
-            {
-                Language.CurrentLanguage = OnAppConfig.Instance.SetLanguage;
-            }
+            //}
+            //else
+            //{
+            //    Language.CurrentLanguage = OnAppConfig.Instance.SetLanguage;
+            //}
         }
 
         public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
         {
-            Console.WriteLine("111111111111");
+            #region 寮傚父鎹曡幏 2023-07-27 17:37:04
+            AppDomain.CurrentDomain.UnhandledException += (sender, e) => {
+                if(e.ExceptionObject is Exception exception)
+                {
+                    MainPage.Log("error", "鏈鐞嗙殑寮傚父锛�" + exception.Message + "StackTrace: " + exception.StackTrace);
+                }
+            };
+
+            TaskScheduler.UnobservedTaskException += (sender, e) => {
+                if (e.Exception is Exception exception)
+                {
+                    MainPage.Log("error", "鏈鐞嗙殑寮傚父锛�" + exception.Message + "StackTrace: " + exception.StackTrace);
+                }
+            };
+            #endregion
+
+
+            //璁剧疆鍏ㄨ閫氱姸鎬�
+            //string systemVersion = UIKit.UIDevice.CurrentDevice.SystemVersion;
+            //string errorVersion = "16.2.0";
+            //if (systemVersion.CompareTo(errorVersion) < 0)///鍏ㄨ閫氫笉鍏煎ios16浠ヤ笂鐨勭郴缁燂紝涓嶈鍔犺浇杩欎釜鍏�
+            //{
+            //    Shared.IOS.HDLFVSDK.Video.FVapplication(application, new NSDictionary());
+            //}
+            //Console.WriteLine("111111111111");
             SetCurrentLanguage();
             //Shared.Application.FontSize = 12;
-            //Bugly.Bugly.StartWithAppId("b58fb35436");
+            //Bugly.Bugly.StartWithAppId("1dc40c170a");
             //鍙栨秷EditText榛樿瀵嗙爜杈撳叆鏂瑰紡
             //Shared.Application.IsEditTextContentTypePassword = false;
             //榛樿浣跨敤鑻规柟瀛椾綋
@@ -267,8 +308,6 @@
             Window.RootViewController = rootViewController;
             Window.MakeKeyAndVisible();
 
-            AppCenter.Start("e1add75a-82c6-4a5c-a902-4705b195748e", typeof(Analytics), typeof(Crashes));
-
             SharedMethod.SharedMethod.sharedApp = application;
             //NSString* nsCount = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode];
             application.StatusBarStyle = UIStatusBarStyle.DarkContent;
@@ -276,19 +315,27 @@
             // check for a notification
             DealWithPushMes(launchOptions);
 
-            //if (UIApplication.SharedApplication.ApplicationIconBadgeNumber > 0)
+            try
+            {
+                UMSdk.HDLUMSDK.InitUMSDKWithAppKey("61d56642e0f9bb492bbc3e72", "IOS");
+            }
+            catch(Exception ex)
+            {
+                Console.WriteLine("鍚姩鍙嬬洘SDK寮傚父锛�"+ex.Message);
+            }
+
+            //// 娉ㄥ唽杩涘叆鍓嶅彴鐨勯�氱煡
+            //NSNotificationCenter.DefaultCenter.AddObserver(UIApplication.WillEnterForegroundNotification, (notification) =>
             //{
-            //    //RemoteInfo.Current.ReadMsgList(true);
-            //}
+            //    // 鍋滄鎾斁閾冨0
+            //    UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
+            //    UNUserNotificationCenter.Current.RemoveAllDeliveredNotifications();
+            //});
 
-            //楂樺痉key
-            GDMapKit.setGDApiKey("f0635ea15c5d579c6e93d9f07a06da69");
-
-            //楂樺痉key
-            GDMapKit.setGDApiKey("f0635ea15c5d579c6e93d9f07a06da69");
             Console.WriteLine("FinishedLaunching");
             return true;
         }
+
 
         /// <summary>
         /// 澶勭悊閫氱煡娑堟伅
@@ -307,16 +354,18 @@
                     var messageType = "";
                     var expantContent = "";
                     var homeId = "";
+
                     if (userInfo.ContainsKey(new NSString("expandData")))
                     {
                         var expandDataStr = userInfo["expandData"] as NSString;
-                        if(expandDataStr == null)
+                        if (expandDataStr == null)
                         {
                             var expandDataNSD = userInfo["expandData"] as NSDictionary;
                             if (expandDataNSD != null)
                             {
                                 expandData = expandDataNSD.ToString();
-                                if(expandDataNSD.ContainsKey(new NSString("messageType"))){
+                                if (expandDataNSD.ContainsKey(new NSString("messageType")))
+                                {
                                     messageType = expandDataNSD["messageType"] as NSString;
                                     Utlis.WriteLine("messageType: " + messageType);
                                 }
@@ -332,6 +381,7 @@
                                     homeId = expandDataNSD["homeId"].ToString();
                                     Utlis.WriteLine("homeId: " + homeId);
                                 }
+
 
                             }
                         }
@@ -360,24 +410,25 @@
                         {
                             if (pushMes.Extras.Contains("OffLine"))
                             {
-                                //haveToSignOut = true;
                                 //寮哄埗涓嬬嚎
-                                UserInfo.Current.LastTime = DateTime.MinValue;
+                                UserInfo.Current.ValidToken = false;
                                 UserInfo.Current.headImagePagePath = "LoginIcon/2.png";//閲嶇疆鐢ㄦ埛澶村儚
                                 UserInfo.Current.SaveUserInfo();
                                 HDLCommon.Current.ShowAlert(Language.StringByID(StringId.LoggedOnOtherDevices));
                             }
                             else
                             {
-                                HDLCommon.Current.AdjustPushMessage(pushMes);
+                                //HDLCommon.Current.AdjustPushMessage(pushMes);
+                                this.CommonAdjustPushMessage(pushMes);//2023骞�04鏈�13鏃�15:55:54 淇敼
                             }
                         }
                     }
                     else
                     {
-                        HDLCommon.Current.AdjustPushMessage(pushMes);
+                        //HDLCommon.Current.AdjustPushMessage(pushMes);
+                        this.CommonAdjustPushMessage(pushMes);
                     }
-                   
+
                 }
             }
             catch
@@ -430,7 +481,7 @@
             //杩涘叆鍚庡彴mqtt姝e湪杩炴帴閲嶇疆鐘舵��
             HDL_ON.DAL.Mqtt.MqttClient.RemoteMqttIsConnecting = false;
             HDL_ON.DriverLayer.UdpSocket._BusSocket.Stop();
-          
+
         }
 
 
@@ -450,12 +501,33 @@
 
             MainPage.IsEnterBackground = false;
             HDL_ON.DriverLayer.UdpSocket._BusSocket.Start();
-            new AppUnlockPage().LoadPage();
+            //閲嶈繛mqtt闃叉mqtt杩涘叆鍋囨鐘舵�� 2023-05-03 22:55:12 wxr
+            HDL_ON.DAL.Mqtt.MqttClient.InitState();
+
+
+            //new AppUnlockPage().LoadPage();
             UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
             HDL_ON.DriverLayer.Control.Ins.SearchLoaclGateway();
         }
 
 
+        public  void CommonAdjustPushMessage(JPushMessageInfo pushMes)
+        {
+            new System.Threading.Thread(new System.Threading.ThreadStart(() =>
+            {
+                while (MainPage.BasePageView == null)
+                {
+                    System.Threading.Thread.Sleep(300);
+                }
+                Shared.Application.RunOnMainThread(() =>
+                {
+                    HDLCommon.Current.AdjustPushMessage(pushMes);
+                });
+            })).Start();
+
+        }
+
+
     }
 
 }

--
Gitblit v1.8.0