69 lines
2.0 KiB
Go
69 lines
2.0 KiB
Go
|
// Package asPush -----------------------------
|
|||
|
// @file : unipush2V0ParamsBuilder.go
|
|||
|
// @author : JJXu
|
|||
|
// @contact : wavingbear@163.com
|
|||
|
// @time : 2024/12/24 09:27
|
|||
|
// -------------------------------------------
|
|||
|
package asPush
|
|||
|
|
|||
|
import (
|
|||
|
"encoding/json"
|
|||
|
"fmt"
|
|||
|
)
|
|||
|
|
|||
|
func NewUnipush2V0ParamsBuilder() *Unipush2V0ParamsBuilder {
|
|||
|
builder := &Unipush2V0ParamsBuilder{}
|
|||
|
builder.InitParams()
|
|||
|
return builder
|
|||
|
}
|
|||
|
|
|||
|
type Unipush2V0ParamsBuilder struct {
|
|||
|
Params map[string]any
|
|||
|
}
|
|||
|
|
|||
|
func (u *Unipush2V0ParamsBuilder) InitParams() {
|
|||
|
u.Params = map[string]any{
|
|||
|
"push_clientid": nil, //手机端app获取到的cid,可以[]string或者string类型。如果是nil会向所有客户端进行app推送
|
|||
|
"title": "", //标题
|
|||
|
"content": "", //消息内容
|
|||
|
"force_notification": true, //用于显示横幅,默认为true
|
|||
|
"payload": map[string]any{}, //这个是自定义参数
|
|||
|
"options": map[string]any{}, //这个是手机厂商的参数
|
|||
|
}
|
|||
|
}
|
|||
|
func (u *Unipush2V0ParamsBuilder) ClientId(value ...string) {
|
|||
|
fmt.Println("inputClientId:", value)
|
|||
|
switch len(value) {
|
|||
|
case 0:
|
|||
|
return
|
|||
|
case 1:
|
|||
|
u.Params["push_clientid"] = value[0]
|
|||
|
default:
|
|||
|
u.Params["push_clientid"] = value
|
|||
|
}
|
|||
|
}
|
|||
|
func (u *Unipush2V0ParamsBuilder) Title(value string) {
|
|||
|
u.Params["title"] = value
|
|||
|
}
|
|||
|
func (u *Unipush2V0ParamsBuilder) Content(value string) {
|
|||
|
u.Params["content"] = value
|
|||
|
}
|
|||
|
func (u *Unipush2V0ParamsBuilder) forceNotification(value bool) {
|
|||
|
u.Params["force_notification"] = value
|
|||
|
}
|
|||
|
|
|||
|
// 自定义参数 ViewPathOfPayload
|
|||
|
func (u *Unipush2V0ParamsBuilder) ViewPathOfPayload(value string) {
|
|||
|
u.Params["payload"].(map[string]any)["viewPath"] = value
|
|||
|
}
|
|||
|
|
|||
|
func (u *Unipush2V0ParamsBuilder) OptionsOfParams(options ...IUnipushOptionsBuilder) {
|
|||
|
for _, option := range options {
|
|||
|
u.Params = option.BuildOptionParams(u.Params)
|
|||
|
}
|
|||
|
}
|
|||
|
func (u *Unipush2V0ParamsBuilder) JsonData() []byte {
|
|||
|
data, _ := json.Marshal(u.Params)
|
|||
|
return data
|
|||
|
}
|