| | |
| | | |
| | | 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> |
| | | /// 用户点击打开了通知 |
| | |
| | | /// <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); |
| | | } |
| | |
| | | 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> |
| | | /// 注册成功回调 |
| | |
| | | public override void OnRegister(Context context, string p1) |
| | | { |
| | | base.OnRegister(context, p1); |
| | | |
| | | Utlis.WriteLine("JPushOnRegister: " + p1); |
| | | } |
| | | |
| | |
| | | //{ |
| | | // try |
| | | // { |
| | | |
| | | |
| | | // if (JPushMessageInfo.Extras.Contains("Offline") == true) |
| | | // { |
| | | // Shared.Application.RunOnMainThread(() => |
| | |
| | | //} |
| | | |
| | | /// <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() |
| | |
| | | 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);
|
| | | //解析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();
|
| | |
|
| | | }
|
| | | }
|
| | |
|
| | | } |