Merge pull request #6 from appleboy/ios-payload

Ios payload
This commit is contained in:
Bo-Yi Wu 2016-03-25 10:40:54 +08:00
commit 0253415455
2 changed files with 74 additions and 15 deletions

View File

@ -1,10 +1,10 @@
package main package main
import ( import (
_ "github.com/google/go-gcm"
apns "github.com/sideshow/apns2" apns "github.com/sideshow/apns2"
"github.com/sideshow/apns2/certificate" "github.com/sideshow/apns2/certificate"
"github.com/sideshow/apns2/payload" "github.com/sideshow/apns2/payload"
_ "github.com/google/go-gcm"
"log" "log"
) )
@ -13,6 +13,18 @@ type ExtendJSON struct {
Value string `json:"val"` 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 { type RequestPushNotification struct {
// Common // Common
Tokens []string `json:"tokens" binding:"required"` Tokens []string `json:"tokens" binding:"required"`
@ -33,7 +45,10 @@ type RequestPushNotification struct {
Sound string `json:"sound,omitempty"` Sound string `json:"sound,omitempty"`
Expiry int `json:"expiry,omitempty"` Expiry int `json:"expiry,omitempty"`
Retry int `json:"retry,omitempty"` Retry int `json:"retry,omitempty"`
Category string `json:"category,omitempty"`
URLArgs []string `json:"url-args,omitempty"`
Extend []ExtendJSON `json:"extend,omitempty"` Extend []ExtendJSON `json:"extend,omitempty"`
Alert alert `json:"alert,omitempty"`
// meta // meta
IDs []uint64 `json:"seq_id,omitempty"` IDs []uint64 `json:"seq_id,omitempty"`
} }
@ -77,7 +92,7 @@ func pushNotificationIos(req RequestPushNotification, client *apns.Client) bool
notification.Topic = req.Topic notification.Topic = req.Topic
} }
if len(req.Priority) > 0 && req.Priority == "low" { if len(req.Priority) > 0 && req.Priority == "normal" {
notification.Priority = apns.PriorityLow 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 notification.Payload = payload
// send ios notification // send ios notification

View File

@ -2,8 +2,8 @@ package main
import ( import (
"fmt" "fmt"
"runtime"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"runtime"
) )
func PrintGoPushVersion() { func PrintGoPushVersion() {