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
{
@@ -34,6 +35,7 @@
        //}
    }
}
namespace HDL_ON_iOS
@@ -128,89 +130,13 @@
            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));
                            }
                        }
                    }
                }
                HandleNotificationMessageUserInfo(userInfo, false);
            }
            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;
                            }
                        }
                    }
                }
                //Inactive
                HandleNotificationMessageUserInfo(userInfo, false);
            }
            completionHandler(UIBackgroundFetchResult.NewData);
@@ -269,12 +195,14 @@
            Console.WriteLine("OnActivated");
            base.OnActivated(application);
            if (haveToSignOut == true)
            {
                //强制下线
                //CommonPage.Instance.SingOut();
                HDLCommon.Current.ShowAlert(Language.StringByID(StringId.LoggedOnOtherDevices));
            }
            //if (haveToSignOut == true)
            //{
                ////强制下线
                //UserInfo.Current.LastTime = DateTime.MinValue;
                //UserInfo.Current.headImagePagePath = "LoginIcon/2.png";//重置用户头像
                //UserInfo.Current.SaveUserInfo();
                //HDLCommon.Current.ShowAlert(Language.StringByID(StringId.LoggedOnOtherDevices));
            //}
        }
@@ -342,64 +270,79 @@
        }
        /// <summary>
        /// 退出登录标记
        /// 处理通知消息
        /// </summary>
        bool haveToSignOut;
        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 = "";
                    if (userInfo.ContainsKey(new NSString("expandData")))
                    {
                        expandData = userInfo["expandData"] as NSString;
                    }
                    var pushMes = new JPushMessageInfo()
                    {
                        Title = title,
                        Content = body,
                        Extras = expandData,
                    };
                    System.Console.WriteLine("PushMes title : " + pushMes.Title);
                    System.Console.WriteLine("PushMes message : " + pushMes.Content);
                    System.Console.WriteLine("PushMes extras : " + pushMes.Extras);
                    if (bFinishedLaunching)
                    {
                        if (pushMes.Extras != null && 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);
                    }
                }
            }
            catch
            {
            }
        }
        ///// <summary>
        ///// 退出登录标记
        ///// </summary>
        //bool haveToSignOut;
        /// <summary>
        /// 处理通知
        /// 启动APP 处理通知
        /// </summary>
        /// <param name="launchOptions"></param>
        void DealWithPushMes(NSDictionary launchOptions)
        {
            haveToSignOut = false;
            //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;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        HandleNotificationMessageUserInfo(userInfo, true);
                    }
                }
@@ -409,5 +352,6 @@
    }
}