From efad979b6fae76fb37a4de7e94e6bac0a85cb72c Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期二, 30 十一月 2021 13:14:28 +0800
Subject: [PATCH] 2021-11-30 1.修复乐橙Android,没调用拒接接口问题。

---
 HDL-ON_Android/Other/JPush/JPushReceiver.cs |  149 +++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 117 insertions(+), 32 deletions(-)

diff --git a/HDL-ON_Android/Other/JPush/JPushReceiver.cs b/HDL-ON_Android/Other/JPush/JPushReceiver.cs
index f24b091..9438176 100644
--- a/HDL-ON_Android/Other/JPush/JPushReceiver.cs
+++ b/HDL-ON_Android/Other/JPush/JPushReceiver.cs
@@ -1,26 +1,30 @@
 锘�
+using System;
+using Android.App;
 using Android.Content;
 using CN.Jpush.Android.Api;
 using CN.Jpush.Android.Service;
 using HDL_ON;
 using HDL_ON.DAL.Server;
 using Shared;
+using Android.OS;
 
 namespace HDL_ON_Android
-{
-    
+{
+
     [BroadcastReceiver(Enabled = true, Exported = false)]
     [Android.App.IntentFilter(new string[]
     {
         "cn.jpush.android.intent.RECEIVE_MESSAGE"
     },
-    Categories=new string[] 
+    Categories = new string[]
     {
         "com.hdl.onpro"
     })]
     public class JPushReceiver : JPushMessageReceiver
-    {
-
+    {
+
+
         private static string TAG = "JPushReceiver";
         /// <summary>
         /// 鐢ㄦ埛鐐瑰嚮鎵撳紑浜嗛�氱煡
@@ -30,7 +34,8 @@
         /// <param name="notificationMessage"></param>
         public override void OnNotifyMessageOpened(Context context, NotificationMessage notificationMessage)
         {
-            base.OnNotifyMessageOpened(context, notificationMessage);
+            //2020-12-23 瑙e喅鐐瑰嚮閫氱煡鏍忔墦寮�涓嶄簡APP闂
+            //base.OnNotifyMessageOpened(context, notificationMessage);
 
             OpenNotification(context, notificationMessage);
         }
@@ -50,12 +55,50 @@
                 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>
+        static 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 +108,6 @@
         public override void OnRegister(Context context, string p1)
         {
             base.OnRegister(context, p1);
-
             Utlis.WriteLine("JPushOnRegister: " + p1);
         }
 
@@ -79,8 +121,6 @@
         //{
         //    try
         //    {
-               
-
         //        if (JPushMessageInfo.Extras.Contains("Offline") == true)
         //        {
         //            Shared.Application.RunOnMainThread(() =>
@@ -108,12 +148,13 @@
         //}
 
         /// <summary>
-        /// 鎵撳紑娑堟伅鏄剧ず鐣岄潰
+        /// 鎵撳紑娑堟伅鏄剧ず鐣岄潰.010000
         /// </summary>
         /// <param name="context"></param>
         /// <param name="notificationMessage"></param>
-        private void OpenNotification(Context context, NotificationMessage notificationMessage)
-        {
+        public static void OpenNotification(Context context, NotificationMessage notificationMessage)
+        {
+
             try
             {
                 var pushMes = new JPushMessageInfo()
@@ -122,30 +163,74 @@
                     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);
-
-                    HDLCommon.Current.AdjustPushMessage(pushMes);
+                    pushMes.messageType = jpushExpandData.messageType;
+                    pushMes.expantContent = jpushExpandData.expantContent; ;
+                    pushMes.HomeId = jpushExpandData.homeId;
+                    Utlis.WriteLine("PushMes messageType : " + pushMes.messageType);
                 }
-                else
-                {
-                    (Shared.Application.Activity as BaseActivity).MoveToFront();
 
-                    HDLCommon.Current.AdjustPushMessage(pushMes);
-                }
+                Utlis.WriteLine("PushMes title : " + pushMes.Title);
+                Utlis.WriteLine("PushMes message : " + pushMes.Content);
+                Utlis.WriteLine("PushMes extras : " + pushMes.Extras);
+                Utlis.WriteLine("PushMes HomeId : " + pushMes.HomeId);
+
+
+                Intent i = new Intent(context, typeof(BaseActivity));//Intent intent=new Intent( 璧峰缁勪欢瀵硅薄 , 鐩爣 Service.class);
+                i.SetFlags(ActivityFlags.NewTask);
+                context.StartActivity(i);
+                //瑙f瀽msg
+                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());
+            //}
         }
-    }
-    
+
+
+
+        public static void AdjustPushMessage(JPushMessageInfo pushMes)
+        {
+
+            new System.Threading.Thread(new System.Threading.ThreadStart(() =>
+            {
+                while (MainPage.BasePageView == null)
+                {
+                    System.Threading.Thread.Sleep(300);
+                }
+                Shared.Application.RunOnMainThread(() =>
+                {
+                    HDLCommon.Current.AdjustPushMessage(pushMes);
+                });
+            })).Start();
+
+        }
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.8.0