tencent cloud

即时通信 IM

模板推送

下载
聚焦模式
字号
最后更新时间: 2026-09-23 15:43:34
模板推送是指开发者预先在推送平台创建含固定框架与可替换变量的消息模板,推送时仅传入变量值,由平台自动填充生成最终消息并下发,兼顾标准化、效率与个性化。一次创建可实现多次批量推送,大幅降低开发与运营成本。适用场景包括:
系统通知:订单状态、物流更新、账户变动、验证码提醒。
运营营销:活动促销、会员福利、新品上线、优惠券发放。
用户唤醒:沉默用户召回、未读消息提醒、功能升级通知。
行业专属:金融交易提醒、电商物流通知、OTA 行程变更、IoT 设备告警等。

创建推送模板

1. 前往 控制台 > Chat > App 推送 > 推送设置,点击推送模板 > 创建推送模板。

2. 填写基础信息:包括模板名称和模板描述。

3. 填写推送信息:包括推送标题和推送内容。可选择添加预设变量(仅适用于 Chat 消息场景),纯 Push 场景可以点击新增自定义变量,页面左侧可查看推送预览。

4. (可选)多语言设置:打开多语言开关后,支持手动添加 / 批量导入。

5. 点击保存推送模板,即可在推送设置页面看到对应的模板,并进行后续操作。


使用推送模板

使用推送模板,有两种方式:

1. 控制台使用模板

1.1 在 推送设置 页面,选择对应模板后点击创建推送。

或在 创建推送 页面,选择从模板创建,选择对应推送模板。

1.2 选定推送模板并查看推送预览后,设置推送策略、推送目标、发送时机等,最后点击推送消息。

1.3 查看推送消息预览,确认无误后点击确认推送。


2. 客户端使用模板

请参考如下推送模板接口进行设置使用,详见 接口列表。
特性分类
字段
类型
使用说明
备注
推送模板
pushTemplateId
String
推送模板 ID。
模板在控制台创建并生成,客户端发送时指定。
无
pushTemplateParam
JSON String
推送模板填充参数。
例:
对应的模板是:
{appName} 发来一条消息
您参与的会议,地址 {address} ,将于 {time} 后开始!
参数内容为:
{
"appName": " TIMPush ",
"address":" 1908 会议室 ",
"time":" 3 分钟 "
}
无
用法示例
Android
iOS
C++
Java
Kotlin
Gson gson = new Gson();
Map<String, Object> map = new HashMap<>();
map.put("pushTemplateId", "templateid");
Map<String, Object> pushTemplateParamMap = new HashMap<>();
pushTemplateParamMap.put("key1", "value1");
map.put("pushTemplateParam", gson.toJson(pushTemplateParamMap));

// Construct offlinePushInfo
V2TIMOfflinePushInfo offlinePushInfo = new V2TIMOfflinePushInfo();
offlinePushInfo.setVendorParams(gson.toJson(map));

// Send the message with offlinePushInfo
V2TIMManager.getMessageManager().sendMessage(
message, receiver, groupID, V2TIMMessage.V2TIM_PRIORITY_DEFAULT, false, offlinePushInfo, callback);
val gson = Gson()
val map = mutableMapOf<String, Any>(
"pushTemplateId" to "templateid"
)
val pushTemplateParamMap = mapOf("key1" to "value1")
map["pushTemplateParam"] = gson.toJson(pushTemplateParamMap)

// Construct offlinePushInfo
val offlinePushInfo = V2TIMOfflinePushInfo()
offlinePushInfo.setVendorParams(gson.toJson(map))

// Send the message with offlinePushInfo
V2TIMManager.getMessageManager().sendMessage(
message, receiver, groupID, V2TIMMessage.V2TIM_PRIORITY_DEFAULT, false, offlinePushInfo, callback)
OC
Swift
NSMutableDictionary *map = [@{
@"pushTemplateId": @"templateid"
} mutableCopy];
NSDictionary *pushTemplateParamMap = @{@"key1": @"value1"};
NSData *pushTemplateData = [NSJSONSerialization dataWithJSONObject:pushTemplateParamMap options:0 error:nil];
NSString *pushTemplateJson = [[NSString alloc] initWithData:pushTemplateData encoding:NSUTF8StringEncoding];
[map setObject:pushTemplateJson forKey:@"pushTemplateParam"];
NSData *paramsData = [NSJSONSerialization dataWithJSONObject:map options:0 error:nil];
NSString *params = [[NSString alloc] initWithData:paramsData encoding:NSUTF8StringEncoding];

// Construct offlinePushInfo
V2TIMOfflinePushInfo *offlinePushInfo = [[V2TIMOfflinePushInfo alloc] init];
offlinePushInfo.vendorParams = params;

// Send the message with offlinePushInfo
[[V2TIMManager sharedInstance] sendMessage:message
receiver:receiver
groupID:groupID
priority:V2TIM_PRIORITY_DEFAULT
onlineUserOnly:NO
offlinePushInfo:offlinePushInfo
progress:nil
succ:succ
fail:fail];

var map: [String: Any] = [
"pushTemplateId": "templateid",
]
let pushTemplateParamMap: [String: String] = ["key1": "value1"]
if let pushTemplateData = try? JSONSerialization.data(withJSONObject: pushTemplateParamMap),
let pushTemplateJson = String(data: pushTemplateData, encoding: .utf8) {
map["pushTemplateParam"] = pushTemplateJson
}
let paramsData = try! JSONSerialization.data(withJSONObject: map)
let params = String(data: paramsData, encoding: .utf8)!

// Construct offlinePushInfo
let offlinePushInfo = V2TIMOfflinePushInfo()
offlinePushInfo.vendorParams = params

// Send the message with offlinePushInfo
V2TIMManager.sharedInstance().sendMessage(
message: message,
receiver: receiver,
groupID: groupID,
priority: .V2TIM_PRIORITY_DEFAULT,
onlineUserOnly: false,
offlinePushInfo: offlinePushInfo,
progress: nil,
succ: succ,
fail: fail
)
#include <sstream>
#include <string>
std::ostringstream params;
params << "{";
params << "\\"pushTemplateId\\":\\"templateid\\",";
std::string pushTemplateParam = "{\\"key1\\":\\"value1\\"}";
params << "\\"pushTemplateParam\\":\\"";
for (const char c : pushTemplateParam) {
if (c == '"') {
params << '\\\\';
}
params << c;
}
params << "\\"}";
std::string vendorParams = params.str();

// Construct offlinePushInfo
V2TIMOfflinePushInfo offlinePushInfo;
offlinePushInfo.vendorParams = V2TIMString(vendorParams.c_str(), vendorParams.size());

// Send the message with offlinePushInfo
V2TIMManager::GetInstance()->GetMessageManager()->SendMessage(
message, receiver, groupID, V2TIM_PRIORITY_DEFAULT, false, offlinePushInfo, callback);



帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈