From a83b5f4438aae1bed698fe9a05dad239ac449214 Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Fri, 25 Mar 2016 10:39:59 +0800 Subject: [PATCH 1/2] fix #5 add ios payload structure. Signed-off-by: Bo-Yi Wu --- notification.go | 61 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/notification.go b/notification.go index ce59843..c7d8ce7 100644 --- a/notification.go +++ b/notification.go @@ -13,6 +13,18 @@ type ExtendJSON struct { Value string `json:"val"` } +type alert struct { + Action string `json:"action,omitempty"` + ActionLocKey string `json:"action-loc-key,omitempty"` + Body string `json:"body,omitempty"` + LaunchImage string `json:"launch-image,omitempty"` + LocArgs []string `json:"loc-args,omitempty"` + LocKey string `json:"loc-key,omitempty"` + Title string `json:"title,omitempty"` + TitleLocArgs []string `json:"title-loc-args,omitempty"` + TitleLocKey string `json:"title-loc-key,omitempty"` +} + type RequestPushNotification struct { // Common Tokens []string `json:"tokens" binding:"required"` @@ -33,7 +45,10 @@ type RequestPushNotification struct { Sound string `json:"sound,omitempty"` Expiry int `json:"expiry,omitempty"` Retry int `json:"retry,omitempty"` + Category string `json:"category,omitempty"` + URLArgs []string `json:"url-args,omitempty"` Extend []ExtendJSON `json:"extend,omitempty"` + Alert alert `json:"alert,omitempty"` // meta IDs []uint64 `json:"seq_id,omitempty"` } @@ -77,7 +92,7 @@ func pushNotificationIos(req RequestPushNotification, client *apns.Client) bool notification.Topic = req.Topic } - if len(req.Priority) > 0 && req.Priority == "low" { + if len(req.Priority) > 0 && req.Priority == "normal" { notification.Priority = apns.PriorityLow } @@ -101,6 +116,50 @@ func pushNotificationIos(req RequestPushNotification, client *apns.Client) bool } } + // Alert dictionary + + if len(req.Alert.Title) > 0 { + payload.AlertTitle(req.Alert.Title) + } + + if len(req.Alert.TitleLocKey) > 0 { + payload.AlertTitleLocKey(req.Alert.TitleLocKey) + } + + if len(req.Alert.LocArgs) > 0 { + payload.AlertTitleLocArgs(req.Alert.LocArgs) + } + + if len(req.Alert.Body) > 0 { + payload.AlertBody(req.Alert.Body) + } + + if len(req.Alert.LaunchImage) > 0 { + payload.AlertLaunchImage(req.Alert.LaunchImage) + } + + if len(req.Alert.LocKey) > 0 { + payload.AlertLocKey(req.Alert.LocKey) + } + + if len(req.Alert.Action) > 0 { + payload.AlertAction(req.Alert.Action) + } + + if len(req.Alert.ActionLocKey) > 0 { + payload.AlertActionLocKey(req.Alert.ActionLocKey) + } + + // General + + if len(req.Category) > 0 { + payload.Category(req.Category) + } + + if len(req.URLArgs) > 0 { + payload.URLArgs(req.URLArgs) + } + notification.Payload = payload // send ios notification From 6c15026b64f188469e8575963fd7944263ec5806 Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Fri, 25 Mar 2016 10:40:29 +0800 Subject: [PATCH 2/2] update format. Signed-off-by: Bo-Yi Wu --- notification.go | 32 ++++++++++++++++---------------- version.go | 2 +- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/notification.go b/notification.go index c7d8ce7..37dbdc7 100644 --- a/notification.go +++ b/notification.go @@ -1,10 +1,10 @@ package main import ( + _ "github.com/google/go-gcm" apns "github.com/sideshow/apns2" "github.com/sideshow/apns2/certificate" "github.com/sideshow/apns2/payload" - _ "github.com/google/go-gcm" "log" ) @@ -27,11 +27,11 @@ type alert struct { type RequestPushNotification struct { // Common - Tokens []string `json:"tokens" binding:"required"` - Platform int `json:"platform" binding:"required"` - Message string `json:"message" binding:"required"` - Priority string `json:"priority,omitempty"` - ContentAvailable bool `json:"content_available,omitempty"` + Tokens []string `json:"tokens" binding:"required"` + Platform int `json:"platform" binding:"required"` + Message string `json:"message" binding:"required"` + Priority string `json:"priority,omitempty"` + ContentAvailable bool `json:"content_available,omitempty"` // Android CollapseKey string `json:"collapse_key,omitempty"` @@ -39,16 +39,16 @@ type RequestPushNotification struct { TimeToLive int `json:"time_to_live,omitempty"` // iOS - ApnsID string `json:"apns_id,omitempty"` - Topic string `json:"topic,omitempty"` - Badge int `json:"badge,omitempty"` - Sound string `json:"sound,omitempty"` - Expiry int `json:"expiry,omitempty"` - Retry int `json:"retry,omitempty"` - Category string `json:"category,omitempty"` - URLArgs []string `json:"url-args,omitempty"` - Extend []ExtendJSON `json:"extend,omitempty"` - Alert alert `json:"alert,omitempty"` + ApnsID string `json:"apns_id,omitempty"` + Topic string `json:"topic,omitempty"` + Badge int `json:"badge,omitempty"` + Sound string `json:"sound,omitempty"` + Expiry int `json:"expiry,omitempty"` + Retry int `json:"retry,omitempty"` + Category string `json:"category,omitempty"` + URLArgs []string `json:"url-args,omitempty"` + Extend []ExtendJSON `json:"extend,omitempty"` + Alert alert `json:"alert,omitempty"` // meta IDs []uint64 `json:"seq_id,omitempty"` } diff --git a/version.go b/version.go index cfb2a59..d45b710 100644 --- a/version.go +++ b/version.go @@ -2,8 +2,8 @@ package main import ( "fmt" - "runtime" "github.com/gin-gonic/gin" + "runtime" ) func PrintGoPushVersion() {