V2TIMOfflinePushInfo 结构体,您可以统一设置通知栏标题、正文、透传扩展字段,并针对不同厂商通道进行精细化的推送行为控制(如优先级、通知类型、私信模板、推送模板、自定义铃音等)。V2TIMOfflinePushInfo 的通用属性与各厂商专属配置字段(vendorParams)的详细说明与使用示例。平台 | API 文档 |
Android | |
iOS | |
C++ | |
C |
属性 | 类型 | 含义 | 是否在通知栏可见 |
title | String | 离线推送通知栏标题。 | 可见 |
desc | String | 离线推送通知栏正文(自定义消息必填)。 | 可见 |
ext | byte[] | 透传扩展字段,点击推送后 APP 内读取。 | 不可见 |
disablePush | boolean | 是否关闭本条离线推送。 | 不可见(true 则整条通知都不出现) |
vendorParams | String(JSON) | 各厂商扩展参数(fcmPriority 等)。 | 不可见(但影响展示行为) |
V2TIMOfflinePushInfo.vendorParams 以 JSON 字符串的形式,透传各厂商推送通道的专属高级配置。您可以按需组合以下字段,SDK 会根据最终命中的推送通道自动取用对应参数。特性分类 | 字段 | 类型 | 使用说明 |
FCM 消息优先级 | fcmPriority | String | FCM 推送消息优先级设置: "normal":普通优先级,应用在前台运行时,普通优先级消息会被立即传递。当应用在后台运行时,消息传递可能会延迟。如果是对时间不太敏感的消息(例如新电子邮件通知、使界面保持同步或在后台同步应用数据),建议您选择普通传递优先级; "high":高优先级,即使设备处于低电耗模式,FCM 也会立即尝试传递高优先级消息。 高优先级消息适用于对时间敏感的用户可见内容。 |
推送模板 | pushTemplateId | String | 推送模板 ID。 模板在控制台创建并生成,客户端发送时指定。 |
| pushTemplateParam | JSON String | 推送模板填充参数。 例: 对应的模板是: {appName} 发来一条消息 您参与的会议,地址 {address} ,将于 {time} 后开始! 参数内容为: { "appName": " TIMPush ", "address":" 1908 会议室 ", "time":" 3 分钟 " } |
V2TIMOfflinePushInfo v2TIMOfflinePushInfo = new V2TIMOfflinePushInfo();Map<String, Object> map = new HashMap<>();map.put("fcmPriority", "high");map.put("pushTemplateId", "templateid");Map<String, Object> pushTemplateParamMap = new HashMap<>();pushTemplateParamMap.put("key1", "value1");map.put("pushTemplateParam", new Gson().toJson(pushTemplateParamMap));String param = new Gson().toJson(map);v2TIMOfflinePushInfo.setVendorParams(param);
val map = mutableMapOf<String, Any>("fcmPriority" to "high","pushTemplateId" to "templateid",)val pushTemplateMap = mapOf("key1" to "value1")map["pushTemplateParam"] = Gson().toJson(pushTemplateMap)val param = Gson().toJson(map)val v2TIMOfflinePushInfo = V2TIMOfflinePushInfo()v2TIMOfflinePushInfo.vendorParams = param
NSMutableDictionary *map = [@{@"fcmPriority": @"high",@"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];V2TIMOfflinePushInfo *v2TIMOfflinePushInfo = [[V2TIMOfflinePushInfo alloc] init];v2TIMOfflinePushInfo.vendorParams = params;
var map: [String: Any] = ["fcmPriority": "high","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)!let v2TIMOfflinePushInfo = V2TIMOfflinePushInfo()v2TIMOfflinePushInfo.vendorParams = params;
#include <sstream>#include <string>V2TIMOfflinePushInfo offline_push_info;//std::string param = R"({"fcmPriority":"high","vivoNotifyType":4})";std::ostringstream param;// 拼主结构体param << "{";param << "\\"fcmPriority\\":\\"high\\",";param << "\\"pushTemplateId\\":\\"templateid\\",";// 拼pushTemplateParam的json字符串std::string push_template_json = "{\\"key1\\":\\"value1\\"}";param << "\\"pushTemplateParam\\":\\"";for (const char c : push_template_json) {if (c == '"') param << '\\\\';param << c;}param << "\\",";offline_push_info.vendorParams = param.str();
文档反馈