From f1e8c2cde53050ffe78ef3b13346ba77ca65110c Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期四, 03 十二月 2020 17:55:52 +0800 Subject: [PATCH] 2020-12-03-2 --- HDL-ON_iOS/AppDelegate.cs | 241 +++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 205 insertions(+), 36 deletions(-) diff --git a/HDL-ON_iOS/AppDelegate.cs b/HDL-ON_iOS/AppDelegate.cs index b85adf9..0709827 100644 --- a/HDL-ON_iOS/AppDelegate.cs +++ b/HDL-ON_iOS/AppDelegate.cs @@ -7,6 +7,7 @@ using Microsoft.AppCenter; using Microsoft.AppCenter.Analytics; using Microsoft.AppCenter.Crashes; +using HDL_ON.UI; namespace SharedMethod { @@ -22,7 +23,7 @@ // UserConfig.Instance.IsAppStoreVersionNewer = Harpy.Harpy.SharedInstance.TestIsAppStoreVersionNewer; // UserConfig.Instance.StoreVersion = Harpy.Harpy.SharedInstance.CurrentAppStoreVersion; // UserConfig.Instance.SaveUserConfig(); - // if (Shared.SimpleControl.MainPage.LoginUser.AccountString == @"464027401@qq.com") + // if (Shared.SimpleControl. UserInfo.Current.AccountString == @"464027401@qq.com") // { // return $"TestIsAppStoreVersionNewer : {UserConfig.Instance.IsAppStoreVersionNewer};; CurrentAppStoreVersion : {UserConfig.Instance.StoreVersion}"; // } @@ -40,7 +41,7 @@ // The UIApplicationDelegate for the application. This class is responsible for launching the // User Interface of the application, as well as listening (and optionally responding) to application events from iOS. [Register("AppDelegate")] - public class AppDelegate : BaseApplicationDelegate + public class AppDelegate : BaseApplicationDelegateForHdlOn// BaseApplicationDelegate { // class-level declarations @@ -56,6 +57,7 @@ // // If not required for your application you can safely delete this method // return true; //} + internal static UINavigationController rootViewController; public static void CleanApplicationIconBadgeNumber() { @@ -98,15 +100,15 @@ string userPhoneName = UIDevice.CurrentDevice.Name; OnAppConfig.Instance.PushDeviceToken = DeviceToken; - //UserConfig.Instance.phoneName = userPhoneName; - //UserConfig.Instance.SaveUserConfig(); + OnAppConfig.Instance.PhoneName = userPhoneName; + OnAppConfig.Instance.SaveUserConfig(); } if (OnAppConfig.Instance.PushDeviceToken != DeviceToken) { string userPhoneName = UIDevice.CurrentDevice.Name; OnAppConfig.Instance.PushDeviceToken = DeviceToken; - //UserConfig.Instance.phoneName = userPhoneName; - //UserConfig.Instance.SaveUserConfig(); + OnAppConfig.Instance.PhoneName = userPhoneName; + OnAppConfig.Instance.SaveUserConfig(); } } @@ -116,6 +118,102 @@ //璇诲彇鎺ㄩ�佷俊鎭� UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0; + + if (userInfo == null) + { + return; + } + + Console.WriteLine(userInfo); + + if (application.ApplicationState == UIApplicationState.Active || application.ApplicationState == UIApplicationState.Background) + { + NSString key_hiddenJson = new NSString("HiddenJson"); + if (userInfo.ContainsKey(key_hiddenJson)) + { + var hiddenJson = userInfo["HiddenJson"].ToString(); + if (string.IsNullOrEmpty(hiddenJson)) + { + return; + } + + if (hiddenJson.Contains("cmtID")) + { + /////鐩墠鏍规嵁杩欎釜鍒ゆ柇鏄惁鏄彲瑙嗗璁叉暟鎹� + //VideoMethod(hiddenJson); + } + else + { + + NSDictionary hiddenJsonDic = userInfo["HiddenJson"] as NSDictionary; + if (hiddenJsonDic == null) + { + return; + } + NSString key_Offline = new NSString("Offline"); + if (hiddenJsonDic.ContainsKey(key_Offline)) + { + string signOut = hiddenJsonDic["Offline"].ToString(); + + if (signOut == "0") + { + //涓嶄笅绾� + } + else + { + //寮哄埗涓嬬嚎 + //CommonPage.Instance.SingOut(); + HDLCommon.Current.ShowAlert(Language.StringByID(StringId.LoggedOnOtherDevices)); + } + } + } + } + } + else + { + NSString key_hiddenJson = new NSString("HiddenJson"); + if (userInfo.ContainsKey(key_hiddenJson)) + { + + var hiddenJson = userInfo["HiddenJson"].ToString(); + if (string.IsNullOrEmpty(hiddenJson)) + { + return; + } + + if (hiddenJson.Contains("cmtID")) + { + /////鐩墠鏍规嵁杩欎釜鍒ゆ柇鏄惁鏄彲瑙嗗璁叉暟鎹� + //VideoMethod(hiddenJson); + } + else + { + + NSDictionary hiddenJsonDic = userInfo["HiddenJson"] as NSDictionary; + if (hiddenJsonDic == null) + { + return; + } + NSString key_Offline = new NSString("Offline"); + if (hiddenJsonDic.ContainsKey(key_Offline)) + { + string signOut = hiddenJsonDic["Offline"].ToString(); + + if (signOut == "0") + { + //涓嶄笅绾� + } + else + { + //鏍囪涓嬬嚎 + haveToSignOut = true; + } + } + } + } + + } + completionHandler(UIBackgroundFetchResult.NewData); } public override void ReceivedRemoteNotification(UIApplication application, NSDictionary userInfo) @@ -141,14 +239,13 @@ public override void OnResignActivation(UIApplication application) { Console.WriteLine("OnResignActivation"); - BusSocket.Stop(); + OnAppConfig.Instance.unlockTime = DateTime.Now; + //BusSocket.Stop(); } public override void DidEnterBackground(UIApplication application) { SharedMethod.SharedMethod.IsBackground = true; - if (MainPage.LoginUser != null) - HDL_ON.Entity.DB_ResidenceData.residenceData.SaveResidenceData(); Console.WriteLine("DidEnterBackground"); } @@ -156,7 +253,8 @@ public override void WillEnterForeground(UIApplication application) { SharedMethod.SharedMethod.IsBackground = false; - BusSocket.Start(6000); + //BusSocket.Start(); + new AppUnlockPage().LoadPage(); Console.WriteLine("WillEnterForeground"); UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0; } @@ -170,47 +268,50 @@ { Console.WriteLine("OnActivated"); base.OnActivated(application); + + if (haveToSignOut == true) + { + //寮哄埗涓嬬嚎 + //CommonPage.Instance.SingOut(); + HDLCommon.Current.ShowAlert(Language.StringByID(StringId.LoggedOnOtherDevices)); + } + } public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { - AppCenter.Start("e1add75a-82c6-4a5c-a902-4705b195748e", - typeof(Analytics), typeof(Crashes)); + + //Shared.Application.FontSize = 12; + Shared.Application.IsUsePingFang = true; + 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)); base.FinishedLaunching(application, launchOptions); SharedMethod.SharedMethod.sharedApp = application; - Shared.Application.IsGpsEnable = false; //NSString* nsCount = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode]; application.StatusBarStyle = UIStatusBarStyle.DarkContent; - string nsCount = NSLocale.CurrentLocale.CountryCode; - if (nsCount != OnAppConfig.Instance.CountryCode) - { - OnAppConfig.Instance.CountryCode = nsCount; - OnAppConfig.Instance.SaveUserConfig(); - } + //string nsCount = NSLocale.CurrentLocale.CountryCode; + + //if ( UserInfo.Current != null && nsCount != UserInfo.Current.areaCode.ToString()) + //{ + // //int.TryParse(nsCount,out UserInfo.Current.areaCode); + // //2020-11-18 + // UserInfo.Current.areaCode = nsCount; + // OnAppConfig.Instance.SaveUserConfig(); + //} + application.IdleTimerDisabled = true; application.RegisterForRemoteNotificationTypes(UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge | UIRemoteNotificationType.Sound); - Window = new UIWindow(UIScreen.MainScreen.Bounds); - var Root = new UINavigationController(new ViewController()) { NavigationBarHidden = true }; - Window.RootViewController = Root; - Window.MakeKeyAndVisible(); //window.AccessibilityNavigationStyle = UIAccessibilityNavigationStyle.Automatic; // check for a notification - if (launchOptions != null) - { - // check for a remote notification - if (launchOptions.ContainsKey(UIApplication.LaunchOptionsRemoteNotificationKey)) - { - - NSDictionary remoteNotification = launchOptions[UIApplication.LaunchOptionsRemoteNotificationKey] as NSDictionary; - if (remoteNotification != null) - { - //UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0; - } - } - } + DealWithPushMes(launchOptions); + if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0)) { var notificationSettings = UIUserNotificationSettings.GetSettingsForTypes(UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, null); @@ -239,6 +340,74 @@ Console.WriteLine("FinishedLaunching"); return true; } + + /// <summary> + /// 閫�鍑虹櫥褰曟爣璁� + /// </summary> + bool haveToSignOut; + /// <summary> + /// 澶勭悊閫氱煡 + /// </summary> + /// <param name="launchOptions"></param> + void DealWithPushMes(NSDictionary launchOptions) + { + haveToSignOut = false; + if (launchOptions != null) + { + // check for a remote notification + if (launchOptions.ContainsKey(UIApplication.LaunchOptionsRemoteNotificationKey)) + { + NSDictionary userInfo = launchOptions[UIApplication.LaunchOptionsRemoteNotificationKey] as NSDictionary; + if (userInfo != null) + { + NSString key_hiddenJson = new NSString("HiddenJson"); + if (userInfo.ContainsKey(key_hiddenJson)) + { + var hiddenJson = userInfo["HiddenJson"].ToString(); + if (!string.IsNullOrEmpty(hiddenJson)) + { + if (hiddenJson.Contains("cmtID")) + { + + ///鐩墠鏍规嵁杩欎釜鍒ゆ柇鏄惁鏄彲瑙嗗璁叉暟鎹� + // VideoMethod(hiddenJson); + } + else + { + + NSDictionary hiddenJsonDic = userInfo["HiddenJson"] as NSDictionary; + if (hiddenJsonDic != null) + { + NSString key_Offline = new NSString("Offline"); + if (hiddenJsonDic.ContainsKey(key_Offline)) + { + string signOut = hiddenJsonDic["Offline"].ToString(); + + if (signOut == "0") + { + //涓嶄笅绾� + } + else + { + //鏍囪涓嬬嚎 + haveToSignOut = true; + } + } + + } + } + } + + + } + + } + } + } + } + + + } } -- Gitblit v1.8.0