wxr
2024-06-11 c53a46858f11e00490eb1b734402649536f0b7e2
HDL_ON/Common/HDLCommon.cs
@@ -7,8 +7,6 @@
using HDL_ON.Entity;
using System.Threading;
using HDL_ON.DriverLayer;
using System.Collections.Generic;
namespace HDL_ON
{
    /// <summary>
@@ -83,6 +81,68 @@
        /// </summary>
        public void CheckIfNeedForceUpdate()
        {
            System.Threading.Tasks.Task.Run(() =>
            {
                try
                {
                    var revertObj = new HttpServerRequest().CheckAppVersion();
                    if (revertObj.Code == StateCode.SUCCESS)
                    {
                        if (revertObj.Data != null)
                        {
                            var appVersionRes = Newtonsoft.Json.JsonConvert.DeserializeObject<AppVersionResNew>(revertObj.Data.ToString());
                            if (appVersionRes != null)
                            {
                                var mForceUpdateInfo = new UpdateDialogInfo()
                                {
                                    UpdateType = appVersionRes.isEnforce ? 2 : 1,
                                    NewVersion = appVersionRes.version,
                                    NewVersionUrl = appVersionRes.packageUrl
                                };
#if __IOS__
                                mForceUpdateInfo.NewVersionUrl = appVersionRes.packageUrl;
#endif
                                //解析更新内容详情
                                //var reasonStrJson = GetReasonStrJson(appVersionRes.remark);
                                //if (reasonStrJson != null)
                                //{
                                //    if (Language.CurrentLanguage == "Chinese")
                                //    {
                                //        mForceUpdateInfo.ReasonStr = reasonStrJson.Chinese;
                                //    }
                                //    else
                                //    {
                                //        mForceUpdateInfo.ReasonStr = reasonStrJson.English;
                                //    }
                                //}
                                mForceUpdateInfo.ReasonStr = appVersionRes.remark;
                                if (appVersionRes.version != MainPage.VersionString)
                                {
                                    Application.RunOnMainThread(() =>
                                    {
                                        ShowForceUpdateDialog(mForceUpdateInfo);
                                    });
                                }
                            }
                        }
                    }
                    else
                    {
                        Utlis.WriteLine("请求失败");
                    }
                }
                catch (Exception ex)
                {
                    //Shared.Utlis.WriteLine (ex.ToString ());
                }
                finally
                {
                }
            });
        }
@@ -113,6 +173,62 @@
        /// </summary>
        public void ShowForceUpdateDialog(UpdateDialogInfo mUpdateDialogInfo)
        {
            // 1.1 没有更新 返回
            if (mUpdateDialogInfo.UpdateType == 0) return;
            // 1.2 有新版本但是忽略过 返回
            if (mUpdateDialogInfo.UpdateType == 1 && (OnAppConfig.Instance.IgnoreUpdateVersion == mUpdateDialogInfo.NewVersion)) return;
            // 2.1 有新版本没有忽略过 提示更新
            if (mUpdateDialogInfo.UpdateType == 1)
            {
                Action okAction = () =>
                {
                    if (string.IsNullOrEmpty(mUpdateDialogInfo.NewVersionUrl)) return;
                    HDLUtils.OpenUrl(mUpdateDialogInfo.NewVersionUrl);
                };
                Action cancelAction = () =>
                {
                    OnAppConfig.Instance.IgnoreUpdateVersion = mUpdateDialogInfo.NewVersion;
                    OnAppConfig.Instance.SaveConfig();
                };
                //1提示更新
                var dialog = new UpdateTipDialog();
                var tipStr = Language.StringByID(StringId.VersionNumber) + mUpdateDialogInfo.NewVersion;
                dialog.ShowUpdateDialog(Language.StringByID(StringId.DiscoverNewVersion), tipStr, mUpdateDialogInfo.ReasonStr, okAction, cancelAction);
            }
            else if (mUpdateDialogInfo.UpdateType == 2) //2.2 需要强制更新
            {
                //2强制更新
                //"1.发现新版本App,当前版本已停用,马上更新!\n2.请下载和安装新版本!....."
                Action okAction = () =>
                {
                    if (string.IsNullOrEmpty(mUpdateDialogInfo.NewVersionUrl))
                    {
                        Utlis.ShowTip(Language.StringByID(StringId.DataExceptionPleaseTryAgain));
                        return;
                    };
                    HDLUtils.OpenUrl(mUpdateDialogInfo.NewVersionUrl);
                };
                //1提示更新
                var dialog = new UpdateTipDialog();
                var tipStr = Language.StringByID(StringId.VersionNumber) + mUpdateDialogInfo.NewVersion;
                dialog.ShowForcedUpdateDialog(Language.StringByID(StringId.DiscoverNewVersion), tipStr, mUpdateDialogInfo.ReasonStr, okAction);
            }
            else //3. 只需提示
            {
                //3提示通知
                Action okAction = () =>
                {
                };
                var dialog = new UpdateTipDialog();
                dialog.ShowTipDialog(Language.StringByID(StringId.Tip), mUpdateDialogInfo.ReasonStr, okAction);
            }
        }
        #endregion
@@ -164,7 +280,7 @@
                        //报警推送弹窗提示
                        ShowAlarmPushMessage(jpushMessageInfo, true);
                        //萤石门锁推送
                        //HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.DoorLockPush(jpushMessageInfo);
                        HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.DoorLockPush(jpushMessageInfo);
                    }
                    //else if (jpushMessageInfo.messageType == (PushMessageType.FLCall.ToString()))
                    //{
@@ -291,13 +407,13 @@
                    {
                        ShowAlarmPushMessage(jpushMessageInfo, false);
                        //萤石门锁推送
                        //HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.DoorLockPush(jpushMessageInfo);
                        HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.DoorLockPush(jpushMessageInfo);
                    }
                    //else if (jpushMessageInfo.messageType == (PushMessageType.DOOR_BELL.ToString()))
                    //{
                    //    //萤石门锁推送
                    //    //HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.DoorLockPush(jpushMessageInfo);
                    //}
                    else if (jpushMessageInfo.messageType == (PushMessageType.DOOR_BELL.ToString()))
                    {
                        //萤石门锁推送
                        HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.DoorLockPush(jpushMessageInfo);
                    }
                }
@@ -338,9 +454,12 @@
        public void CheckLogout()
        {
#if __IOS__
            try{
            try
            {
                HDL_ON_iOS.AppDelegate.rootViewController.PopToRootViewController(false);
            }catch(Exception ex){
            }
            catch (Exception ex)
            {
                MainPage.Log($"回到跟类失败:{ex.Message}");
            }
#else
@@ -642,13 +761,8 @@
                                    string strValue = list[i];
                                    nSObject[i] = new Foundation.NSString(strValue);
                                }
                                try
                                {
                                    EZSDK.IOS.EZSDK.SharedInstance().ToEZDeviceListViewWithFilterTypes(nSObject);
                                }catch(Exception x)
                                {
                                    MainPage.Log("Error", x.Message);
                                }
#else
@@ -694,6 +808,7 @@
                    }
                    else
                    {
                        if (result.Code != "-1")
                        IMessageCommon.Current.ShowErrorInfoAlter(result.Code);
                    }
                }