From e13a9980ce617db1394a76944186c5d5bd595d5d Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 02 六月 2021 14:37:12 +0800
Subject: [PATCH] 5月需求bug修复
---
HDL-ON_iOS/AppDelegate.cs | 314 +++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 251 insertions(+), 63 deletions(-)
diff --git a/HDL-ON_iOS/AppDelegate.cs b/HDL-ON_iOS/AppDelegate.cs
index 565cf50..851ed2e 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()
//{
@@ -34,6 +35,7 @@
//}
}
+
}
namespace HDL_ON_iOS
@@ -97,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();
}
}
@@ -118,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)
@@ -143,24 +172,27 @@
public override void OnResignActivation(UIApplication application)
{
Console.WriteLine("OnResignActivation");
- OnAppConfig.Instance.unlockTime = DateTime.Now;
- //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();
- new AppUnlockPage().LoadPage();
+ //鍥炲埌鍓嶅彴锛屽鐞嗕簨浠�
+ BusSocketStart();
Console.WriteLine("WillEnterForeground");
- UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
}
public override void WillTerminate(UIApplication application)
@@ -172,83 +204,239 @@
{
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)
{
-
+ SetCurrentLanguage();
//Shared.Application.FontSize = 12;
- //Shared.Application.IsUsePingFang = true;
+ //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));
- base.FinishedLaunching(application, launchOptions);
+ 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 ( 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.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 = "";
+ 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);
+ }
+
+ }
+ }
+ else
+ {
+ expandData = expandDataStr;
+ }
+
+ }
+ var pushMes = new JPushMessageInfo()
+ {
+ 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