wxr
2024-08-02 ea4b1f379fa052b1e044e1d67e85a8500cbd86ff
HDL-ON_iOS/AppDelegate.cs
@@ -6,6 +6,9 @@
using HDL_ON.UI;
using HDL_ON.DAL.Server;
using System.Threading.Tasks;
using UserNotifications;
using Other;
using AVFoundation;
namespace SharedMethod
{
@@ -50,18 +53,12 @@
            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()
        {
            UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
        }
        //public static void CleanApplicationIconBadgeNumber()
        //{
        //    UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
        //}
        
        [Export("application:shouldAllowExtensionPointIdentifier:")]
        public override bool ShouldAllowExtensionPointIdentifier(UIApplication application, NSString extensionPointIdentifier)
@@ -99,14 +96,7 @@
            // Get previous device token
            var oldDeviceToken = NSUserDefaults.StandardUserDefaults.StringForKey("PushDeviceToken");
            //new Alert("", DeviceToken, "取消", "确定").Show();
            //NSDictionary test = new NSDictionary(new NSString("123"), new NSString("test"));
            //NSError error;
            //NSData dicD = NSJsonSerialization.Serialize(test, NSJsonWritingOptions.PrettyPrinted,out error); ;
            //NSString str = new NSString(dicD,NSStringEncoding.UTF8);
            //new Alert("", str, "取消", "确定").Show();
            // Has the token changed?
            if (string.IsNullOrEmpty(oldDeviceToken) || !oldDeviceToken.Equals(DeviceToken))
@@ -116,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();
@@ -137,34 +120,16 @@
        public override void DidReceiveRemoteNotification(UIApplication application, NSDictionary userInfo, Action<UIBackgroundFetchResult> completionHandler)
        {
            Console.WriteLine("DidReceiveRemoteNotification:" + application.ApplicationState.ToString());
            Console.WriteLine("推送消息:"+userInfo);
            //var test = new NSDictionary();
            //test.SetNilValueForKey(new NSString("test"));
            //NSError error;
            //NSData dicD = NSJsonSerialization.Serialize(userInfo, NSJsonWritingOptions.PrettyPrinted, out error); ;
            //NSString str = new NSString(dicD, NSStringEncoding.UTF8);
            //new Alert("", str, "取消", "确定").Show();
            //读取推送信息
            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);
@@ -187,10 +152,6 @@
            {
                Console.WriteLine("ReceivedRemoteNotification3");
            }
            //string extKey1 = "PushResType";
            //NSString extValue1 = userInfo.ValueForKey ((NSString)extKey1);
        }
        public override void OnResignActivation(UIApplication application)
@@ -203,7 +164,7 @@
            //    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)
@@ -310,14 +271,14 @@
            AppDomain.CurrentDomain.UnhandledException += (sender, e) => {
                if(e.ExceptionObject is Exception exception)
                {
                    Console.WriteLine("未处理的异常:" + exception.Message);
                    MainPage.Log("error","未处理的异常:" + exception.Message);
                }
            };
            TaskScheduler.UnobservedTaskException += (sender, e) => {
                if (e.Exception is Exception exception)
                {
                    Console.WriteLine("未处理的异常:" + exception.Message);
                    MainPage.Log("error", "未处理的异常:" + exception.Message);
                }
            };
            #endregion
@@ -354,10 +315,6 @@
            // check for a notification
            DealWithPushMes(launchOptions);
            //if (UIApplication.SharedApplication.ApplicationIconBadgeNumber > 0)
            //{
            //    //RemoteInfo.Current.ReadMsgList(true);
            //}
            try
            {
                UMSdk.HDLUMSDK.InitUMSDKWithAppKey("61d56642e0f9bb492bbc3e72", "IOS");
@@ -366,6 +323,14 @@
            {
                Console.WriteLine("启动友盟SDK异常:"+ex.Message);
            }
            // 注册进入前台的通知
            NSNotificationCenter.DefaultCenter.AddObserver(UIApplication.WillEnterForegroundNotification, (notification) =>
            {
                // 停止播放铃声
                UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
                UNUserNotificationCenter.Current.RemoveAllDeliveredNotifications();
            });
            Console.WriteLine("FinishedLaunching");
            return true;
@@ -438,11 +403,6 @@
                    Utlis.WriteLine("PushMes title : " + pushMes.Title);
                    Utlis.WriteLine("PushMes message : " + pushMes.Content);
                    Utlis.WriteLine("PushMes extras : " + pushMes.Extras);
                    if (!string.IsNullOrEmpty(pushMes.spk))//自研可视对讲需要记录时间反呼
                    {
                        UserInfo.Current.pushMessageInfo = pushMes;
                        UserInfo.Current.inCall = DateTime.Now;
                    }
                    if (bFinishedLaunching)
                    {
@@ -546,7 +506,7 @@
            HDL_ON.DAL.Mqtt.MqttClient.InitState();
            new AppUnlockPage().LoadPage();
            //new AppUnlockPage().LoadPage();
            UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
            HDL_ON.DriverLayer.Control.Ins.SearchLoaclGateway();
        }