wei
2021-08-27 eda3fb873e59544ff36301b51e05aef64f87b0f9
HDL-ON_Android/Other/JPush/JPushReceiver.cs
@@ -1,4 +1,6 @@

using System;
using Android.App;
using Android.Content;
using CN.Jpush.Android.Api;
using CN.Jpush.Android.Service;
@@ -30,7 +32,8 @@
        /// <param name="notificationMessage"></param>
        public override void OnNotifyMessageOpened(Context context, NotificationMessage notificationMessage)
        {
            base.OnNotifyMessageOpened(context, notificationMessage);
            //2020-12-23 解决点击通知栏打开不了APP问题
            //base.OnNotifyMessageOpened(context, notificationMessage);
            OpenNotification(context, notificationMessage);
        }
@@ -50,12 +53,49 @@
                Content = notificationMessage.NotificationContent,
                Extras = notificationMessage.NotificationExtras
            };
            System.Console.WriteLine("PushMes title : " + pushMes.Title);
            System.Console.WriteLine("PushMes message : " + pushMes.Content);
            System.Console.WriteLine("PushMes extras : " + pushMes.Extras);
            HDLCommon.Current.AdjustPushMessage(pushMes);
            var jpushExpandData = GetJPushExpandData(pushMes);
            if (jpushExpandData != null && jpushExpandData.messageType != null)
            {
                pushMes.messageType = jpushExpandData.messageType;
                pushMes.expantContent = jpushExpandData.expantContent;
                pushMes.HomeId = jpushExpandData.homeId;
                Utlis.WriteLine("PushMes messageType : " + pushMes.messageType);
            }
            Utlis.WriteLine("PushMes title : " + pushMes.Title);
            Utlis.WriteLine("PushMes message : " + pushMes.Content);
            Utlis.WriteLine("PushMes extras : " + pushMes.Extras);
            Utlis.WriteLine("PushMes HomeId : " + pushMes.HomeId);
            Shared.Application.RunOnMainThread(() =>
            {
                HDLCommon.Current.AdjustPushMessage(pushMes);
            });
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="pushMes"></param>
        /// <returns></returns>
        ExpandData GetJPushExpandData(JPushMessageInfo pushMes)
        {
            try
            {
                if (pushMes.Extras != null)
                {
                    var jpushExpandData = Newtonsoft.Json.JsonConvert.DeserializeObject<JPushExpandData>(pushMes.Extras.ToString());
                    return Newtonsoft.Json.JsonConvert.DeserializeObject<ExpandData>(jpushExpandData.expandData);
                }
                return null;
            }
            catch
            {
                return null;
            }
        }
        /// <summary>
        /// 注册成功回调
@@ -65,7 +105,6 @@
        public override void OnRegister(Context context, string p1)
        {
            base.OnRegister(context, p1);
            Utlis.WriteLine("JPushOnRegister: " + p1);
        }
@@ -79,8 +118,6 @@
        //{
        //    try
        //    {
        //        if (JPushMessageInfo.Extras.Contains("Offline") == true)
        //        {
        //            Shared.Application.RunOnMainThread(() =>
@@ -108,7 +145,7 @@
        //}
        /// <summary>
        /// 打开消息显示界面
        /// 打开消息显示界面.010000
        /// </summary>
        /// <param name="context"></param>
        /// <param name="notificationMessage"></param>
@@ -122,29 +159,55 @@
                    Content = notificationMessage.NotificationContent,
                    Extras = notificationMessage.NotificationExtras
                };
                System.Console.WriteLine("PushMes title : " + pushMes.Title);
                System.Console.WriteLine("PushMes message : " + pushMes.Content);
                System.Console.WriteLine("PushMes extras : " + pushMes.Extras);
                if (Shared.Application.Activity == null)
                var jpushExpandData = GetJPushExpandData(pushMes);
                if (jpushExpandData != null && jpushExpandData.messageType != null)
                {
                    var tempIntent = new Intent(context, typeof(Shared.BaseActivity));//Intent intent=new Intent( 起始组件对象 , 目标 Service.class);
                    tempIntent.SetFlags(ActivityFlags.BroughtToFront);
                    context.StartActivity(tempIntent);
                    pushMes.messageType = jpushExpandData.messageType;
                    pushMes.expantContent = jpushExpandData.expantContent; ;
                    pushMes.HomeId = jpushExpandData.homeId;
                    Utlis.WriteLine("PushMes messageType : " + pushMes.messageType);
                }
                Utlis.WriteLine("PushMes title : " + pushMes.Title);
                Utlis.WriteLine("PushMes message : " + pushMes.Content);
                Utlis.WriteLine("PushMes extras : " + pushMes.Extras);
                Utlis.WriteLine("PushMes HomeId : " + pushMes.HomeId);
                Shared.Application.RunOnMainThread(() =>
                {
                    Intent i = new Intent(context, typeof(BaseActivity));//Intent intent=new Intent( 起始组件对象 , 目标 Service.class);
                    i.SetFlags(ActivityFlags.NewTask);
                    context.StartActivity(i);
                    HDLCommon.Current.AdjustPushMessage(pushMes);
                }
                else
                {
                    (Shared.Application.Activity as BaseActivity).MoveToFront();
                });
                    HDLCommon.Current.AdjustPushMessage(pushMes);
                }
                //Shared.Application.RunOnMainThread(() =>
                //{
                //    if (Shared.Application.Activity == null)
                //    {
                //        var tempIntent = new Intent(context, typeof(Shared.BaseActivity));//Intent intent=new Intent( 起始组件对象 , 目标 Service.class);
                //        tempIntent.SetFlags(ActivityFlags.BroughtToFront);
                //        context.StartActivity(tempIntent);
                //        HDLCommon.Current.AdjustPushMessage(pushMes);
                //    }
                //    else
                //    {
                //        (Shared.Application.Activity as BaseActivity).MoveToFront();
                //        HDLCommon.Current.AdjustPushMessage(pushMes);
                //    }
                //});
            }
            catch
            {
            }
            //catch (Exception ex)
            //{
            //    Utlis.WriteLine(ex.ToString());
            //}
        }
    }