From ba9422ace5bdad0a8a81dcfa3b592d8a405a33b8 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期三, 01 九月 2021 15:13:39 +0800
Subject: [PATCH] 2021-9-1-2
---
HDL-ON_iOS/AppDelegate.cs | 330 ++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 268 insertions(+), 62 deletions(-)
diff --git a/HDL-ON_iOS/AppDelegate.cs b/HDL-ON_iOS/AppDelegate.cs
index 7d7622e..03ce2b3 100644
--- a/HDL-ON_iOS/AppDelegate.cs
+++ b/HDL-ON_iOS/AppDelegate.cs
@@ -8,6 +8,7 @@
using Microsoft.AppCenter.Analytics;
using Microsoft.AppCenter.Crashes;
using HDL_ON.UI;
+using HDL_ON.DAL.Server;
namespace SharedMethod
{
@@ -15,7 +16,7 @@
{
public static UIApplication sharedApp;
public static PageLayout CurPageLayout = null;
- public static bool IsBackground;
+ //public static bool IsBackground;
//public static string CheckVersion()
//{
@@ -23,7 +24,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}";
// }
@@ -34,6 +35,7 @@
//}
}
+
}
namespace HDL_ON_iOS
@@ -41,7 +43,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
@@ -57,6 +59,7 @@
// // If not required for your application you can safely delete this method
// return true;
//}
+ internal static UINavigationController rootViewController;
public static void CleanApplicationIconBadgeNumber()
{
@@ -96,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();
OnAppConfig.Instance.PushDeviceToken = DeviceToken;
- //UserConfig.Instance.phoneName = userPhoneName;
- //UserConfig.Instance.SaveUserConfig();
+ OnAppConfig.Instance.PhoneName = UIDevice.CurrentDevice.Name;
+ OnAppConfig.Instance.SaveConfig();
}
if (OnAppConfig.Instance.PushDeviceToken != DeviceToken)
{
- string userPhoneName = UIDevice.CurrentDevice.Name;
+ //string userPhoneName = UIDevice.CurrentDevice.Name;
+ //UserInfo.Current.PushDeviceToken = DeviceToken;
+ //UserInfo.Current.PhoneName = userPhoneName;
+ //UserInfo.Current.SaveUserInfo();
OnAppConfig.Instance.PushDeviceToken = DeviceToken;
- //UserConfig.Instance.phoneName = userPhoneName;
- //UserConfig.Instance.SaveUserConfig();
+ OnAppConfig.Instance.PhoneName = UIDevice.CurrentDevice.Name;
+ OnAppConfig.Instance.SaveConfig();
}
}
@@ -117,6 +125,28 @@
//璇诲彇鎺ㄩ�佷俊鎭�
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
+ {
+ //Inactive
+ HandleNotificationMessageUserInfo(userInfo, false);
+
+ }
+ completionHandler(UIBackgroundFetchResult.NewData);
}
public override void ReceivedRemoteNotification(UIApplication application, NSDictionary userInfo)
@@ -142,23 +172,27 @@
public override void OnResignActivation(UIApplication application)
{
Console.WriteLine("OnResignActivation");
- 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姝e湪杩炴帴閲嶇疆鐘舵��
+ //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(6000);
- new AppUnlockPage().LoadPage();
+ //鍥炲埌鍓嶅彴锛屽鐞嗕簨浠�
+ BusSocketStart();
Console.WriteLine("WillEnterForeground");
- UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
}
public override void WillTerminate(UIApplication application)
@@ -170,76 +204,248 @@
{
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));
+ //}
+
+ }
+
+ /// <summary>
+ /// 璁剧疆褰撳墠浣跨敤璇█
+ /// </summary>
+ void SetCurrentLanguage()
+ {
+ 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
+ {
+ Language.CurrentLanguage = "English";
+ }
+ }
+ else
+ {
+ Language.CurrentLanguage = OnAppConfig.Instance.SetLanguage;
+ }
}
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
- Shared.Application.IsGpsEnable = false;
- AppCenter.Start("e1add75a-82c6-4a5c-a902-4705b195748e",
- typeof(Analytics), typeof(Crashes));
+ Console.WriteLine("111111111111");
+ SetCurrentLanguage();
+ //Shared.Application.FontSize = 12;
+ //Bugly.Bugly.StartWithAppId("b58fb35436");
+ //鍙栨秷EditText榛樿瀵嗙爜杈撳叆鏂瑰紡
+ //Shared.Application.IsEditTextContentTypePassword = false;
+ //榛樿浣跨敤鑻规柟瀛椾綋
+ Shared.Application.IsUsePingFang = true;
+ //淇濇寔灞忓箷甯镐寒鎴栬�呰嚜鍔ㄩ攣灞�
+ application.IdleTimerDisabled = false;
base.FinishedLaunching(application, launchOptions);
+
+ 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));
SharedMethod.SharedMethod.sharedApp = application;
//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();
- }
- 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
+ DealWithPushMes(launchOptions);
+
+ //if (UIApplication.SharedApplication.ApplicationIconBadgeNumber > 0)
+ //{
+ // //RemoteInfo.Current.ReadMsgList(true);
+ //}
+
+ Console.WriteLine("FinishedLaunching");
+ return true;
+ }
+
+ /// <summary>
+ /// 澶勭悊閫氱煡娑堟伅
+ /// </summary>
+ void HandleNotificationMessageUserInfo(NSDictionary userInfo, bool bFinishedLaunching)
+ {
+ try
+ {
+ if (userInfo.ContainsKey(new NSString("aps")))
+ {
+ var aps = userInfo["aps"] as NSDictionary;
+ var alert = aps["alert"] as NSDictionary;
+ var body = alert["body"] as NSString;
+ var title = alert["title"] as NSString;
+ var expandData = "";
+ var messageType = "";
+ var expantContent = "";
+ var homeId = "";
+ if (userInfo.ContainsKey(new NSString("expandData")))
+ {
+ 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);
+ }
+
+ if (expandDataNSD.ContainsKey(new NSString("expantContent")))
+ {
+ expantContent = expandDataNSD["expantContent"] as NSString;
+ Utlis.WriteLine("expantContent: " + expantContent);
+ }
+
+ if (expandDataNSD.ContainsKey(new NSString("homeId")))
+ {
+ homeId = expandDataNSD["homeId"].ToString();
+ Utlis.WriteLine("homeId: " + homeId);
+ }
+
+ }
+ }
+ else
+ {
+ expandData = expandDataStr;
+ }
+
+ }
+ var pushMes = new JPushMessageInfo()
+ {
+ HomeId = homeId,
+ Title = title,
+ Content = body,
+ Extras = expandData,
+ messageType = messageType,
+ expantContent = expantContent
+ };
+ Utlis.WriteLine("PushMes title : " + pushMes.Title);
+ Utlis.WriteLine("PushMes message : " + pushMes.Content);
+ Utlis.WriteLine("PushMes extras : " + pushMes.Extras);
+
+ if (bFinishedLaunching)
+ {
+ if (pushMes.Extras != null)
+ {
+ if (pushMes.Extras.Contains("OffLine"))
+ {
+ //haveToSignOut = true;
+ //寮哄埗涓嬬嚎
+ UserInfo.Current.LastTime = DateTime.MinValue;
+ UserInfo.Current.headImagePagePath = "LoginIcon/2.png";//閲嶇疆鐢ㄦ埛澶村儚
+ UserInfo.Current.SaveUserInfo();
+ HDLCommon.Current.ShowAlert(Language.StringByID(StringId.LoggedOnOtherDevices));
+ }
+ else
+ {
+ HDLCommon.Current.AdjustPushMessage(pushMes);
+ }
+ }
+ }
+ else
+ {
+ HDLCommon.Current.AdjustPushMessage(pushMes);
+ }
+
+ }
+ }
+ catch
+ {
+ //HDLCommon.Current.ShowAlert("catch2222");
+ }
+ }
+
+ ///// <summary>
+ ///// 閫�鍑虹櫥褰曟爣璁�
+ ///// </summary>
+ //bool haveToSignOut;
+ /// <summary>
+ /// 鍚姩APP 澶勭悊閫氱煡
+ /// </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;
- NSDictionary remoteNotification = launchOptions[UIApplication.LaunchOptionsRemoteNotificationKey] as NSDictionary;
- if (remoteNotification != null)
+ if (userInfo != null)
{
- //UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
+ //HandleNotificationMessageUserInfo(userInfo, true);
+
}
}
}
- if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0))
- {
- var notificationSettings = UIUserNotificationSettings.GetSettingsForTypes(UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, null);
- application.RegisterUserNotificationSettings(notificationSettings);
- application.RegisterForRemoteNotifications();
- }
- else
- {
- //==== register for remote notifications and get the device token
- // set what kind of notification types we want
- UIRemoteNotificationType notificationTypes = UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge;
- // register for remote notifications
- UIApplication.SharedApplication.RegisterForRemoteNotificationTypes(notificationTypes);
- }
-
- if (UIApplication.SharedApplication.ApplicationIconBadgeNumber > 0)
- {
- //RemoteInfo.Current.ReadMsgList(true);
- }
-
- //Harpy.Harpy.SharedInstance.PresentingViewController = this.Window.RootViewController;
- //Harpy.Harpy.SharedInstance.WeakDelegate = this;
- //Harpy.Harpy.SharedInstance.AlertType = Harpy.HarpyAlertType.Skip;
- //Harpy.Harpy.SharedInstance.DebugEnabled = false;
- //Harpy.Harpy.SharedInstance.ForceLanguageLocalization = Harpy.Constants.HarpyLanguageChineseSimplified;
- Console.WriteLine("FinishedLaunching");
- return true;
}
+
+ /// <summary>
+ /// 杩涘叆鍚庡彴鐨勬椂闂�
+ /// </summary>
+ DateTime CloseTime = DateTime.Now;
+
+ /// <summary>
+ /// 杩涘叆鍚庡彴澶勭悊鏃堕棿
+ /// BusSocketStop
+ /// </summary>
+ void BusSocketStop()
+ {
+ //SharedMethod.SharedMethod.IsBackground = true;
+ CloseTime = DateTime.Now;
+ MainPage.IsEnterBackground = true;
+ //杩涘叆鍚庡彴mqtt姝e湪杩炴帴閲嶇疆鐘舵��
+ 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();
+ }
+
}
+
}
--
Gitblit v1.8.0