// Package asPush ----------------------------- // @file : unipush2V0Params.go // @author : JJXu // @contact : wavingbear@163.com // @time : 2024/12/23 16:33 // ------------------------------------------- package asPush type UniPushDeviceType uint8 //手机厂商 func (p UniPushDeviceType) String() string { return deviceOptionMap[p] } const ( XIAO_MI UniPushDeviceType = iota + 1 //小米 VIVO //VIVO HUA_WEI //华为 RONG_YAO //荣耀 OPPO //oppo ) var ( deviceOptionMap = map[UniPushDeviceType]string{ XIAO_MI: "XM", VIVO: "VV", HUA_WEI: "HW", RONG_YAO: "HO", OPPO: "OP", } ) type IUnipushOptionsBuilder interface { BuildOptionParams(map[string]any) map[string]any //构建请求参数中options字段的对象 } type CommonPushOptionsType struct { Type UniPushDeviceType Options map[string]any } func (c *CommonPushOptionsType) BuildOptionParams(params map[string]any) map[string]any { if params["options"] == nil { params["options"] = make(map[string]any) } for k, v := range c.Options { params["options"].(map[string]any)[k] = v } return params } // NewUnipushHuaWeiOptions 创建华为平台消息推送参数 func NewUnipushHuaWeiOptions(category ...string) IUnipushOptionsBuilder { cate := "WORK" if category != nil && len(category) > 0 { cate = category[0] } return &CommonPushOptionsType{ Type: HUA_WEI, Options: map[string]any{ HUA_WEI.String(): map[string]any{ "/message/android/notification/importance": "NORMAL", "/message/android/category": cate, "/message/android/notification/default_sound": false, "/message/android/notification/channel_id": "tinsoCallAudioCustom", "/message/android/notification/sound": "/raw/callaudio", }, }, } } // NewUnipushVivoOptions 创建vivo平台消息推送参数 func NewUnipushVivoOptions() IUnipushOptionsBuilder { return &CommonPushOptionsType{ Type: VIVO, Options: map[string]any{ VIVO.String(): map[string]any{ "/classificatioin": 1, "/notifyType": 4, }, }, } } // NewUnipushXiaoMiOptions 创建小米平台消息推送参数 func NewUnipushXiaoMiOptions(channelId string) IUnipushOptionsBuilder { return &CommonPushOptionsType{ Type: XIAO_MI, Options: map[string]any{ XIAO_MI.String(): map[string]any{ "/extra.channel_id": channelId, "/extra.sound_uri": "android.resource://aobo.onbotics.accessibleCommunication/raw/callaudio", }, }, } } // NewUnipushRongYaoOptions 创建荣耀平台消息推送参数 func NewUnipushRongYaoOptions() IUnipushOptionsBuilder { return &CommonPushOptionsType{ Type: RONG_YAO, Options: map[string]any{ RONG_YAO.String(): map[string]any{ "/android/notification/importance": "NORMAL", }, }, } } // NewUnipushOppoOptions 创建oppo平台消息推送参数 func NewUnipushOppoOptions() IUnipushOptionsBuilder { return &CommonPushOptionsType{ Type: OPPO, Options: map[string]any{ OPPO.String(): map[string]any{ "/channel_id": "push_oplus_category_service", "/style": 1, "/category": "TODO", "/notify_level": 2, }, }, } }