From 26d9d7630c4e5db785efc80584750227b6e1cfd7 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 31 Aug 2022 11:55:55 +0800 Subject: [PATCH] fcm --- internal/push/fcm/push.go | 12 ++++++++++-- internal/push/logic/push_to_client.go | 3 ++- internal/push/push_interface.go | 4 +++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/internal/push/fcm/push.go b/internal/push/fcm/push.go index 99338e558..48f6a9947 100644 --- a/internal/push/fcm/push.go +++ b/internal/push/fcm/push.go @@ -7,11 +7,12 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/tools/splitter" "context" + "path/filepath" + "strconv" + firebase "firebase.google.com/go" "firebase.google.com/go/messaging" "google.golang.org/api/option" - "path/filepath" - "strconv" ) const SinglePushCountLimit = 400 @@ -67,6 +68,13 @@ func (f *Fcm) Push(accounts []string, alert, detailContent, operationID string, Msg.Notification = &messaging.Notification{} Msg.Notification.Body = detailContent Msg.Notification.Title = alert + if opts.IOSBadgeCount { + i := 1 + Msg.APNS.Payload.Aps.Badge = &i + } + if opts.IOSPushSound != "" { + Msg.APNS.Payload.Aps.Sound = opts.IOSPushSound + } ctx := context.Background() for _, v := range result { Msg.Tokens = v.Item diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 766704e1b..0e34ca5d9 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -318,7 +318,8 @@ func GetOfflinePushOpts(pushMsg *pbPush.PushMsgReq) (opts push.PushOpts, err err opts.Signal.ClientMsgID = pushMsg.MsgData.ClientMsgID log.NewDebug(pushMsg.OperationID, opts) } - + opts.IOSBadgeCount = pushMsg.MsgData.OfflinePushInfo.IOSBadgeCount + opts.IOSPushSound = pushMsg.MsgData.OfflinePushInfo.IOSPushSound } return opts, nil } diff --git a/internal/push/push_interface.go b/internal/push/push_interface.go index a1d45d7b7..1e177e74e 100644 --- a/internal/push/push_interface.go +++ b/internal/push/push_interface.go @@ -5,7 +5,9 @@ type OfflinePusher interface { } type PushOpts struct { - Signal Signal + Signal Signal + IOSPushSound string + IOSBadgeCount bool } type Signal struct {