前置条件
1. 应用中已集成 TencentCloud-TIMPush,可参见 uniapp TIMPush 快速接入。
2. 应用已完成 uniapp 离线打包。
3. 下载 TencentCloud-TIMPush 插件到本地。
4. Android Studio / Xcode。
离线打包集成 TencentCloud-TIMPush
步骤1. 导入 TencentCloud-TIMPush 本地依赖。
将 TencentCloud-TIMPush/android 下的 aar 包 导入项目的 /app/libs 中。如图所示:
![](https://qcloudimg.tencent-cloud.cn/image/document/bea2b1bc358e9beb52a5bb24584d5498.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/bea2b1bc358e9beb52a5bb24584d5498.png)
步骤2. 配置 TencentCloud-TIMPush 厂商仓库。
将 TencentCloud-TIMPush 的厂商仓库地址补充到项目的 /app/src/build.gradle 中。如图所示:
注意:
仓库地址的配置涉及 buildscript.repositories、buildscript.dependencies 和 allprojects.repositories,参考图示进行配置。
buildscript { repositories {...... maven { url 'https://developer.huawei.com/repo/' } maven { url "https://mirrors.tencent.com/nexus/repository/maven-public/" } } dependencies { ...... classpath 'com.google.gms:google-services:4.3.15' } } allprojects { repositories { ...... maven { url 'https://developer.huawei.com/repo/' } maven { url "https://mirrors.tencent.com/nexus/repository/maven-public/" } } }
![](https://qcloudimg.tencent-cloud.cn/image/document/f3f5fd861ccee6da76a0a2494f1222d3.png)
步骤3. 配置 TencentCloud-TIMPush 厂商依赖。
将 TencentCloud-TIMPush 的厂商依赖补充到项目的 /app/src/build.gradle 中。如图所示:
// TIMPush 的依赖 implementation "com.huawei.hms:push:6.11.0.300" implementation "com.tencent.timpush:xiaomi-vendor:5.9.9" implementation "com.tencent.timpush:oppo-vendor:3.1.0" implementation "com.tencent.timpush:vivo-vendor:4.0.0.0" implementation "com.tencent.timpush:honor-vendor:6.0.5" implementation "com.tencent.timpush:fcm:7.9.5668" implementation "com.meizu.flyme.internet:push-internal:4.3.0" implementation "com.tencent.liteav.tuikit:tuicore:7.8.5484" implementation "com.tencent.imsdk:imsdk-plus:7.8.5484" implementation "commons-codec:commons-codec:1.15" implementation "androidx.appcompat:appcompat:1.3.0" implementation "com.google.android.material:material:1.3.0" implementation "com.google.code.gson:gson:2.9.1" implementation "com.google.auto.service:auto-service-annotations:1.1.1" implementation "com.google.gms:google-services:4.3.15"
![](https://qcloudimg.tencent-cloud.cn/image/document/b0eec574390d5657f017b02ea332295e.png)
步骤4. 配置 TencentCloud-TIMPush 插件信息。
将 TencentCloud-TIMPush 插件信息配置到项目的 /app/src/main/assets/dcloud_uniplugins.json 中。如图所示:
{ "hooksClass": "com.tencent.qcloud.tim.push.TIMPushAppProxy", "plugins": [ { "type": "module", "name": "TencentCloud-TIMPush", "class": "com.tencent.qcloud.tim.push.TIMPushModule" } ] }
![](https://qcloudimg.tencent-cloud.cn/image/document/d7b9dfc73e7895384d88f2d98c974dc1.png)
步骤5. 配置 TencentCloud-TIMPush 厂商信息(仅荣耀和 ViVO)。
将 vivo 的 appID 和 appKey 和 hihonor 配置到项目的 /app/src/main/assets/AndroidManifest.xml 中。如图所示:
说明:
1. 使用 vivo 推送必须 AndroidManifest.xml 中配置 appID 和 appKey。
2. 使用 hihonor 推送必须 AndroidManifest.xml 中配置 appID。
<meta-data tools:replace="android:value" android:name="com.vivo.push.app_id" android:value="0" /> <!-- vivo 的 appID --> <meta-data tools:replace="android:value" android:name="com.vivo.push.api_key" android:value="0" /> <!-- vivo 的 appKey --> <meta-data tools:replace="android:value" android:name="com.hihonor.push.app_id" android:value="0" /> <!-- hihonor 的 appID -->
![](https://qcloudimg.tencent-cloud.cn/image/document/8bb1650d8ee79a586c3e56eda51e6faf.png)
步骤6. 配置华为 agconnect-services.json(仅华为)。
将华为 agconnect-services.json 配置文件添加到工程的根目录,如图所示:
![](https://qcloudimg.tencent-cloud.cn/image/document/52087a659d64b6fd57fd69e1a49de543.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/52087a659d64b6fd57fd69e1a49de543.png)
步骤7. 运行并登录项目,确认 TencentCloud-TIMPush 集成成功。
运行时,在 Android Studio 的日志中,确认有
register push successfully
打印,表示 TencentCloud-TIMPush 集成成功,如图所示:![](https://qcloudimg.tencent-cloud.cn/image/document/fadd3864bb864ea8ec511bb3d15a74b2.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/fadd3864bb864ea8ec511bb3d15a74b2.png)
步骤1. 配置 push notification 能力。
在工程的 【Signing & Capabilities】-> 【+ Capability】中搜索 push notification,双击添加 push notification 能力。如图所示:
![](https://qcloudimg.tencent-cloud.cn/image/document/a092607c59e72e811f68d6e187ed669b.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/a092607c59e72e811f68d6e187ed669b.png)
步骤2. 配置 TencentCloud-TIMPush 插件信息。
找到原生工程的 info.plist 文件右键选择 【Open As】 -> 【Source Code】 源码查看,添加如下节点信息 Info.plist。如图所示:
注意:
uniapp 离线打包 demo 中 dcloud_uniplugins 节点有可能已存在,替换即可。
<key>dcloud_uniplugins</key><array><dict><key>hooksClass</key><string>TIMPushProxy</string><key>plugins</key><array><dict><key>class</key><string>TIMPushModule</string><key>name</key><string>TencentCloud-TIMPush</string><key>type</key><string>module</string></dict></array></dict></array>
![](https://qcloudimg.tencent-cloud.cn/image/document/96d6133ebce0d5e344c75063755d6de5.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/96d6133ebce0d5e344c75063755d6de5.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/f0341bfae7ed81df7df8ec5eca60920b.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/f0341bfae7ed81df7df8ec5eca60920b.png)
步骤3. 配置 TencentCloud-TIMPush 回调。
在工程 AppDelegate 的 app lifecycle 下配置 push 远程回调。如图所示:
/** @Summary:远程push注册成功收到DeviceToken回调**/- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{NSLog(@"application--didRegisterForRemoteNotificationsWithDeviceToken[%@]", deviceToken);[PDRCore handleSysEvent:PDRCoreSysEventRevDeviceToken withObject:deviceToken];}/** @Summary: 远程push注册失败*/- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error{[PDRCore handleSysEvent:PDRCoreSysEventRegRemoteNotificationsError withObject:error];}
![](https://qcloudimg.tencent-cloud.cn/image/document/e3fcda6997b80acd84438872ddfb10a2.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/e3fcda6997b80acd84438872ddfb10a2.png)
步骤4. 运行并登录项目,确认 TencentCloud-TIMPush 集成成功。
运行时,在 XCode 的日志中,确认有
TIMPushModule._setToken ok
打印,表示 TencentCloud-TIMPush 集成成功,如图所示:![](https://qcloudimg.tencent-cloud.cn/image/document/b11bf50ceef415ce8cfcfa499843035b.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/b11bf50ceef415ce8cfcfa499843035b.png)
接收您的第一条推送
注意:
1. 接收端的应用必须置于后台,或者结束进程的状态。
2. 直播群不支持离线消息推送。
![](https://qcloudimg.tencent-cloud.cn/image/document/94b864999f8e222976da261d9ac6a5eb.png)