【Unity】接入腾讯TimPush通知消息推送
接入腾讯TimPush通知消息推送
- 下载TimPush Unity SDK
- 推送参数配置
- Android
- IOS
- 客户端厂商配置
- 注册推送
- 测试
下载TimPush Unity SDK
调整自己项目里Packages/manifest.json文件,添加包
{"dependencies": {..."com.tencent.timpush.unity":"https://github.com/TencentCloud/TIMSDK.git#push_unity"}
}
推送参数配置
Android
需要先完成厂商推送信息,这里我只接入了Google FCM通道
到FireBase后台里生成一个秘钥,再到IM后台填上


其他厂商的可以看看腾讯文档里的厂商配置
这里要注意的是,从IM后台下载下来的timpush-configs.json需要放在Assets/Plugins/Android/JsonConfigs目录下,否则会接收不到离线推送,生成的日志文件里会报错提示找不到配置文件
IOS
前置步骤按腾讯文档里的做就行
在IM后台分配好证书ID后,在Assets/Plugins/iOS 目录下创建文件 UnityIMPush.mm
#import "TPush/TPush.h"
#import "UnityAppController.h"@interface UnityAppController (ThirdPartyExtension) <TIMPushDelegate>
- (int)businessID;- (NSString *)applicationGroupID;
@end@implementation UnityAppController (ThirdPartyExtension)#pragma mark - TIMPush
- (int)businessID {
- //控制台给的证书,会给两个,debug是连xcode调试用,正式证书ID是打ios包出来用return 12345;
}- (NSString *)applicationGroupID {
- //一般是@group.包名return @"group.com.tencent.tuikit.demo.xa";
}
@end
客户端厂商配置
大部分步骤都可以按照腾讯接入文档里第三步去操作,但是要注意
在调整launcherTemplate.gradle,添加依赖包的时候,要添加以下依赖包,不能只添加com.tencent.timpush:timpush,还需要添加com.tencent.liteav.tuikit:tuicore
// 版本号 “VERSION” 是接入SDK的版本号
implementation 'com.tencent.timpush:timpush:VERSION'
implementation 'com.tencent.liteav.tuikit:tuicore:VERSION'
注册推送
using System;
using System.Collections.Generic;
using com.tencent.timpush.unity;
using Ferr;
using Newtonsoft.Json;
using UnityEngine;public class TimPushManager{private static TimPushManager _instance;public static TimPushManager Instance{get{if (_instance == null){_instance = new TimPushManager();}return _instance;}}//IM后台的Appidprivate int appId = 123456;//IM后台给的Appkeyprivate string appKey = "yourkey";public event Action<bool, string> OnRegisterPushResult;public void Initialize(){//优先使用FCM通道PushManager.ForceUseFCMPushChannel(true);}public void RegisterPushMessage(){PushListener listener = new PushListener(onRecvPushMessage: (message) =>{Debug.Log($"收到推送消息: 标题:{message.title}, 内容:{message.desc}, 透传内容:{message.ext}, 消息 ID:{message.messageID}");}, onRevokePushMessage: (messageID) => { Debug.Log($"撤销推送消息 ID: {messageID}"); },onNotificationClicked: (ext) => { Debug.Log($"点击推送消息: {ext}"); });PushManager.AddPushListener(listener);PushManager.RegisterPush(appId, appKey, new PushCallback(onSuccess: (data) =>{Debug.Log($"注册推送成功: {data}");GetRegisterPushId();OnRegisterPushResult?.Invoke(true, data.ToString());}, onError: (errCode, errMsg, data) =>{Debug.Log($"注册推送失败: 错误码:{errCode}, 错误信息:{errMsg}");OnRegisterPushResult?.Invoke(false, errMsg);}));}public void GetRegisterPushId(){PushManager.GetRegistrationID(new PushCallback(onSuccess: (data) => { Debug.Log($"注册ID:{data}"); },onError: (errorCode, errorMsg, data) => { Debug.Log($"注册ID获取失败: 错误码:{errorCode}, 错误信息:{errorMsg}"); }));}}
测试
测试在IM后台-推送测试即可,测试工具文档
