Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
react-native-tim-push
Advanced tools
The Push Plug-in for Tencent Cloud IM on Flutter, support Apple APNS/ Google Firebase Cloud Messaging/ HUAWEI/ XiaoMi/ OPPO/ Vivo platform.
即时通信 IM 的终端用户需要随时都能够得知最新的消息,而由于移动端设备的性能与电量有限,当 App 处于后台时,为了避免维持长连接而导致的过多资源消耗,即时通信 IM 推荐您使用各厂商提供的系统级推送通道来进行消息通知,系统级的推送通道相比第三方推送拥有更稳定的系统级长连接,可以做到随时接受推送消息,且资源消耗大幅降低。
!
- 在没有主动退出登录的情况下,应用退后台、手机锁屏、或者应用进程被用户主动杀掉三种场景下,如果想继续接收到 IM 消息提醒,可以接入即时通信 IM 离线推送。
- 如果应用主动调用 logout 退出登录,或者多端登录被踢下线,即使接入了 IM 离线推送,也收不到离线推送消息。
集成 react-native-tim-push
之前,请您先 注册应用到厂商推送平台,登录腾讯云账号进行 IM 控制台配置 和 配置离线推送跳转界面。之后按照如下步骤操作即可快速接入 IM 离线推送。
!
- 请在登录后初始化插件。
- 组件支持的厂商有:小米、华为、OPPO、vivo、魅族和 Google FCM。
- 苹果请参考官方插件:react-native-push-notification。
// using npm
npm i react-native-tim-push --save
// using yarn
yarn add react-native-tim-push
::: 方法 1
android {
...
defaultConfig {
...
manifestPlaceholders = [
"VIVO_APPKEY" : "您应用分配的证书 APPKEY",
"VIVO_APPID" : "您应用分配的证书 APPID"
]
}
}
</tr>
</table>
:::
</dx-tabs>
- **华为和 Google FCM 适配**
华为和 Google FCM 需要按照厂商方法,集成对应的 plugin 和 json 配置文件。
1. 下载配置文件添加到工程根目录。
<dx-tabs>
::: 华为
<table>
<tr>
<img src="https://qcloudimg.tencent-cloud.cn/raw/220264120cdadd154c581e8164c21515.png" style="zoom:60%;" />
</tr>
</table>
:::
::: Google FCM
<table>
<tr>
<img src="https://qcloudimg.tencent-cloud.cn/raw/1bfbfc52fb60440c192d7bddd372f99d.png" style="zoom:60%;" />
</tr>
</table>
:::
</dx-tabs>
2. 在项目级 build.gradle 文件中 buildscript -> dependencies 下添加以下配置:
repositories { ... // 配置 HMS Core SDK 的 Maven 仓地址。 maven {url 'https://developer.huawei.com/repo/'} }
dependencies { ... classpath 'com.google.gms:google-services:4.2.0' classpath 'com.huawei.agconnect:agcp:1.4.1.300' }
3. 在应用级 build.gradle 文件中添加下方配置。
apply plugin: 'com.google.gms.google-services' apply plugin: 'com.huawei.agconnect'
### 步骤2: 推送参数配置
推送证书添加成功之后,IM 控制台会为您分配一个证书 ID,请您在初始化插件时传入,该证书 ID 会在注册推送服务和上报 token 时使用, 以小米为例:
**推送证书 ID 如下:**
![](https://qcloudimg.tencent-cloud.cn/raw/772536e8a3f474572f5b85bfb2597fe1.png)
**填充的参数如下:**
```javascript
import { TimPushPlugin } from 'react-native-tim-push';
import { LogLevelEnum, TencentImSDKPlugin } from 'react-native-tim-js';
const cPush = new TimPushPlugin();
const login = () => {
const userID = ""; // userID
const userSig = ""; // userSig
const res = await TencentImSDKPlugin.v2TIMManager.login(userID, userSig);
// 判断是否登录成功
if (res.code === 0) {
// 初始化离线推送插件
initPushPlugin();
}
}
const initPushPlugin = () => {
cPush.init({
mi_buz_id: 5218, // 在腾讯云控制台分配的证书ID
mi_push_app_id: '', //小米开放平台分配的应用APPID
mi_push_app_key: '', //小米开放平台分配的应用APPKEY
});
}
以上步骤完成后,就可以收到离线推送通知了。
发送消息时,请您设置离线推送参数,具体请参见 发消息时设置离线推送参数
import { TencentImSDKPlugin } from 'react-native-tim-js';
// 创建文本消息
const createTextMessage = await TencentImSDKPlugin.v2TIMManager.getMessageManager().createTextMessage("test");
if(createTextMessage.code == 0){
String id = createTextMessage.data.id;
// 发送文本消息
const sendMessageRes = await TencentImSDKPlugin.v2TIMManager.getMessageManager().sendMessage(id: id, receiver: "userID", groupID: "", offlinePushInfo: {
title = '', // 推送通知标题。留空字符串时,按照优先级,IM后台自动替换成 sender的昵称 => sender ID。因此,如无特殊需求,该字段议留空,可达到和微信一致的效果
desc = '', // 推送第二行小字部分
disablePush = false,
ext = '', // 推送内额外信息,对方可于单击通知跳转时拿到。建议传含Conversation信息的JSON,用于收件方跳转至对应Chat。可参见下方TUIKit的实例代码。
androidOPPOChannelID = '', // OPPO的channel ID
});
if(sendMessageRes.code == 0){
// 发送成功
}
}
欢迎加入 QQ 群进行技术交流和反馈问题,QQ 群:437955475。
OPPO 手机收不到推送一般有以下几种情况:
自定义消息的离线推送和普通消息不太一样,自定义消息的内容我们无法解析,不能确定推送的内容,所以默认不推送,如果您有推送需求,需要您在 sendMessage 的时候设置 offlinePushInfo 的 desc 字段,推送的时候会默认展示 desc 信息。
离线推送的直观表现就是通知栏提示,所以同其他通知一样受设备通知相关设置的影响,以华为为例:
1、国内厂商都有消息分类机制,不同类型也会有不同的推送策略。如果想要推送及时可靠,需要按照厂商规则设置自己应用的推送类型为高优先级的系统消息类型或者重要消息类型。反之,离线推送消息会受厂商推送消息分类影响,与预期会有差异。 2、另外,一些厂商对于应用每天的推送数量也是有限制的,可以在厂商控制台查看应用每日限制的推送数量。 如果离线推送消息出现推送不及时或者偶尔收不到情况,需要考虑下这里:
FAQs
Tencent IM Push
We found that react-native-tim-push demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.