tencentchatpushfor

腾讯云IM,消息推送插件(中国大陆版)。支持通过厂商渠道进行离线消息推。

More...

支持通过厂商渠道进行离线消息推送,及在线后台创建消息通知。不支持FirebaseCloudMessaging。

本中国大陆版消息推送插件,不包含GoogleFirebaseCloudMessaging(FCM)渠道的支持,离线推送部分仅支持苹果iOS及国内安卓厂商(华米OV等)。

如果您的应用需要面向中国大陆以外的市场,建议您使用我们的国际版离线推送插件,使用GoogleFirebaseCloudMessaging(FCM)渠道向Android设备推送离线消息。

ThispackagedoesnotsupportGoogleFirebaseCloudMessaging(FCM)channel,whiletheofflinepushpartonlyincludesthesupportsofAppleiOSandChineseAndroidmanufacturers(HuaWei/Mi/Oppo/vivo,etc.).

IfyourappneedstotargetmarketsoutsidemainlandChina,werecommendthatyouuseourinternationaleditionofthispackagetopushofflinemessagestoAndroiddevicesusingtheGoogleFirebaseCloudMessaging(FCM)channel.

腾讯云即时通信IM的终端用户需要随时都能够得知最新的消息,而由于移动端设备的性能与电量有限,当APP处于后台时,为了避免维持长连接而导致的过多资源消耗,腾讯云即时通信IM推荐您使用各厂商提供的系统级推送通道来进行消息通知,系统级的推送通道相比第三方推送拥有更稳定的系统级长连接,可以做到随时接受推送消息,且资源消耗大幅降低。

使用腾讯云IM厂商推送Flutter集成插件的离线推送能力,可快速接入主流厂商(苹果iOS/OPPO/VIVO/华为/小米/魅族/荣耀)的离线推送。

本教程含接入腾讯云即时通信IM离线推送全流程。插件已封装上述厂商的SDK,使用时仅需简单改造调用即可。

以下API若无特殊说明,均可自动兼容Android/iOS平台及支持厂商,插件内部进行平台及厂商判断,您直接调用即可。

需要完成厂商开发者账号申请(一般需要企业认证),创建应用,申请PUSH权限,拿到key信息。

按照OPPO官网要求,在OPPOAndroid8.0及以上系统版本必须配置ChannelID,否则推送消息无法展示。您需要先在App中创建对应的ChannelID(例如tuikit)。

请在配置管理-新建通道内,创建一个新通道。通道ID即为ChannelID。

小米推送服务应用创建完成后,在应用详情中,您可以查看详细的应用信息。

如果您的应用需要经过流水线编译发布,每次编译在不同的构建机上进行,可在本地创建keystore.jks密钥文件,得到该keystore的SHA256值,填入华为推送平台中。

在流水线的构建脚本中,对完成构建后的产物进行归档对齐,及使用刚才的keystore签名。此时该最终产物签名SHA256值即可保持一致。代码如下:

记录下图中圈出的信息,后续需要使用。

在您的项目中安装IMFlutter离线推送插件:

//app其他gradle插件applyplugin:'com.huawei.agconnect'//HMSSDKgradle插件android{//app配置内容}推送角标权限打开android/app/src/main/AndroidManifest.xml文件,如下添加uses-permission。

vivo配置APPID及APPKeyAppID及AppKey来自vivo开放平台-推送运营平台。

打开android/app/build.gradle文件,如下配置vivo的APPID和AppKey。

android:{defaultConfig{manifestPlaceholders=[....vivo_APPID:"填入您申请的vivoAppKey"vivo_APPKEY:"填入您申请的vivoAppID",.....]}}打开android/app/src/main/AndroidManifest.xml文件,在中,如下添加meta-data。

VIVO角标权限打开android/app/src/main/AndroidManifest.xml文件,如下添加uses-permission。

新荣耀打开android/app/src/main/AndroidManifest.xml文件,在中,如下添加meta-data。

打开android/app/build.gradle文件,添加如下代码。

插件支持自动在appInfo内找到当前厂商的证书ID,并自动完成Token上报。

若为前台在线状态,则收到新消息不触发notification推送,反之则会进行推送。

建议:在应用切换到inactive/paused状态前,使用插件中setBadgeNum(intbadgeNum)方法,将最新未读数同步至桌面角标。此处本插件支持配置iOS,XIAOMI(MIUI6-MIUI11机型),HUAWEI,HONOR,vivo及OPPO设备角标。

OPPO角标属于OPPO侧高级权益,不默认开放。如需使用,请自行联系OPPO应用推送权益对接人。

如您自行接入腾讯云IMSDK,请在发消息时配置OfflinePushInfoofflinePushInfo字段。

建议在跳转成功后,及时清除通知栏中其他本应用的通知,避免太多IM消息堆积其中。调用插件中clearAllNotification()方法即可。

finaluser=awaitsdkInstance.getLoginUser();finalmyId=user.data;OfflinePushInfoofflinePush=OfflinePushInfo(title:"",desc:"邀请您语音通话",ext:"{\"conversationID\":\"c2c_$myId\"}",disablePush:false,ignoreIOSBadge:false,androidOPPOChannelID:PushConfig.OPPOChannelID);_calling.call(widget.selectedConversation.userID!,CallingScenes.Audio,offlinePush);通话群邀请暂不支持离线推送。

本部分在使用插件跑通离线推送(Android)完成的基础上,补充对应步骤iOS端需要做的事情。

该部分没有提到过的步骤,和Android端一致。

if(@available(iOS10.0,*)){[UNUserNotificationCentercurrentNotificationCenter].delegate=(id)self;}Swift:

OfflinePushInfo({//..其他配置this.iOSSound="",//iOS离线推送声音设置,当iOSSound=kIOSOfflinePushNoSound,表示接收时不会播放声音。当iOSSound=kIOSOfflinePushDefaultSound,表示接收时播放系统声音。如果要自定义iOSSound,需要先把语音文件链接进Xcode工程,然后把语音文件名(带后缀)设置给iOSSound。this.ignoreIOSBadge=false,});接入TUIKit如果您使用我们的FlutterTUIKit组件库,可直接在TIMUIKitChat组件TIMUIKitChatConfig中,使用notificationTitle/notificationOPPOChannelID/notificationBody/notificationExt/notificationIOSSound定义自定义推送。详情如下:

TIMUIKitChat(config:TIMUIKitChatConfig(//..其他配置notificationIOSSound:"",//iOS离线推送声音设置,当iOSSound=kIOSOfflinePushNoSound,表示接收时不会播放声音。当iOSSound=kIOSOfflinePushDefaultSound,表示接收时播放系统声音。如果要自定义iOSSound,需要先把语音文件链接进Xcode工程,然后把语音文件名(带后缀)设置给iOSSound。))

本步骤整体方案与Android的步骤5一致,此处不再重复提及。

TencentImSDKPlugin.v2TIMManager.callExperimentalAPI(api:'disableBadgeNumber',param:true);本代码仅需在程序启动后,执行一次即可。

如果您的业务中,有其他运营通知/订单通知等消息,需要推送,您可以参考本部分,使用服务端推送能力。

如果您在项目中,使用了其他推送SDK,如TPNS,会导致多个厂商底层SDK冲突,使得编译不通过。因此建议仅安装我们的推送插件即可,使用我们的服务端推送能力,下发IM消息和您的其他推送消息。

此处实际是向用户们发送了一条消息,消息内容不重要,如果您不希望这条消息呈现给用户,可在渲染会话列表的时候,过滤掉同此管理员账号的会话,仅使用其推送和跳转能力。

以全员推送的JSON包体举例:

OPPO手机收不到推送一般有以下几种情况:

自定义消息的离线推送和普通消息不太一样,自定义消息的内容我们无法解析,不能确定推送的内容,所以默认不推送,如果您有推送需求,需要您在sendMessage的时候设置offlinePushInfo的desc字段,推送的时候会默认展示desc信息。

本文以上部分介绍了,如何使用本插件,结合腾讯云IM后端的推送服务,实现通过厂商通道的离线推送。

但是,在某些情况下,厂商离线推送并不适用。如,您的目标客户端机型非我们兼容的厂商,使用华强北定制的Android设备等。

此时,您只得通过在线监听收到新消息回调,在客户端上,手动触发创建通知。这仅适用于,应用未被kill掉,还处于前后台状态,能正常与IM服务端通信。

为此种情况,本插件在0.3版本中,新增两个本地创建消息的方法,displayNotification自定义通知,及displayDefaultNotificationForMessage根据消息生成默认通知,您可按需使用。

在您的项目中安装IMFlutter推送插件:

Objective-C:

if(@available(iOS10.0,*)){[UNUserNotificationCentercurrentNotificationCenter].delegate=(id)self;}Swift:

代码如下:

finaladvancedMsgListener=V2TimAdvancedMsgListener(onRecvNewMessage:(V2TimMessagenewMsg){//这里完成监听回调触发事件//请在这里调用下一步提及的触发本地消息通知API},});TencentImSDKPlugin.v2TIMManager.getMessageManager().addAdvancedMsgListener(listener:advancedMsgListener);触发本地消息通知请从我们提供的两个API中,displayNotification自定义通知,及displayDefaultNotificationForMessage根据消息生成默认通知,选一个合适的API。

cPush.createNotificationChannel(channelId:"new_message",channelName:"消息推送",channelDescription:"推送新聊天消息");displayNotification本API需要您提供title,body,及ext用于点击跳转信息,三个参数。您可以根据需要自行解析收到的V2TimMessage,生成这三个字段。

为便于跳转,此处ext的生成规则可查看displayDefaultNotificationForMessage的代码。

cPush.displayNotification(channelID:"new_message",channelName:"消息推送",title:"",body:"",ext:"");displayDefaultNotificationForMessage为了方便,推荐您使用此API,自动根据V2TimMessage,生成通知。

您只需传入一个V2TimMessage即可。

如果您在上一步使用displayDefaultNotificationForMessage,或在displayNotification中使用与default相同的ext生成函数,此时的ext结构为:"conversationID":"对应的conversation"。

此时,填上初始化时,为pushClickAction埋的坑。

初始化时,注册该回调方法,可拿到含推送本体及ext信息在内的Map。

在后台跳转情况下,此时Flutter首页可能已经unmounted,无法为跳转提供context,因此建议启动时缓存一个context,保证跳转成功。

建议跳转成功后,清除通知栏中其他通知消息,避免太多IM消息堆积在通知栏中。调用插件中clearAllNotification()方法即可。

BuildContext_cachedContext;finalTimUiKitPushPlugincPush=TimUiKitPushPlugin();@overridevoidinitState(){super.initState();_cachedContext=context;}voidonClickNotification(Mapmsg)async{Stringext=msg['ext']"";MapextMsp=jsonDecode(ext);StringconvId=extMsp["conversationID"]"";//若当前的会话与要跳转至的会话一致,则不跳转//此处建议您自行判断下,用户当前打开的页面finaltargetConversationRes=awaitTencentImSDKPlugin.v2TIMManager.getConversationManager().getConversation(conversationID:convId);V2TimConversationtargetConversation=targetConversationRes.data;if(targetConversation!=null){cPush.clearAllNotification();Navigator.push(_cachedContextcontext,MaterialPageRoute(builder:(context)=>Chat(selectedConversation:targetConversation,),));}}如果您自定义了ext结构,则需自实现点击跳转函数。

此时,您已完成在线推送的接入。测试通过后,您可以在onRecvNewMessage内定义,触发推送通知的时机及场景。

THE END
1.电脑必关四个“无赖刺客”,不然你一定会后悔!#电脑技巧在我们日常使用电脑的过程中,常常会被一些看似不起眼的问题困扰,其中电脑通知就是一个让人又爱又恨的“电脑刺客”。 通知为何会如此烦人呢?想象一下,当你正在全神贯注地工作,撰写重要的报告或者进行紧张的设计工作时,突然一个弹窗跳出来,打断了你的思路。这不仅让人感到烦躁,还会严重影响工作效率。有时候,通知会http://www.itianti.com/wenzhang/38f834a0-bc07-11ef-aab2-57d4f0138ce7
2.深度解析与观点阐述,如何关闭手机实时资讯功能视频中心随着移动互联网的普及,手机资讯推送已成为我们日常生活中不可或缺的一部分,对于部分用户而言,过度的实时资讯推送可能带来困扰,如何合理管理甚至关闭这些推送成为关注的焦点,本文将围绕“2024年12月13日手机实时资讯怎么关闭”这一主题展开讨论,从不同角度阐述观点。 http://dglgjx.com/%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90%E4%B8%8E%E8%A7%82%E7%82%B9%E9%98%90%E8%BF%B0%EF%BC%8C%E5%A6%82%E4%BD%95%E5%85%B3%E9%97%AD%E6%89%8B%E6%9C%BA%E5%AE%9E%E6%97%B6%E8%B5%84%E8%AE%AF%E5%8A%9F%E8%83%BD/233.html
3.最新通知:受台风影响驾考停考一天受台风天气影响 8月1日,科目一到科目四全部驾考科目 考试暂停一天 台风天的天气极不稳定,请各位学员及时留意车管所考试安排与调整!有任何关于驾考的最新通知,小编会通过下面这些途径及时通知大家: 1网上消息公布 通过珠海交警微信、微博、网上车管所发布最新考试安排与情况。 https://gd.sina.cn/zhuhai/2019-08-01/detail-ihytcerm7718662.d.html?from=wap
4.Android12应用适配指南3影响应用的行为变更?为了缓解应用使用 Display API 检索应用边界的行为,Android 12 添加了一种新的沙盒机制来更正这些 API 返回的信息。这可能会对将此信息与 MediaProjection 一起使用的应用产生影响。 应用应使用 WindowMetrics API 查询其窗口的边界,并使用Configuration.densityDpi查询当前的密度。 https://app.applebyme.cn/cloud/appshangjia/1901.html
5.停运,临时关闭!武汉最新通知武汉最新通知 受大范围雨雪冰冻天气影响 2月4日 武铁部分列车停运 湖北省内部分高速入口临时关闭 有出行计划的朋友请注意 受持续低温冰雪冻雨天气影响 武铁部分列车停运 受我国中东部地区持续低温冰雪冻雨天气影响,为确保旅客出行安全,2月4日武汉局管内汉口、十堰、宜昌、恩施、枣阳等地往返开行的部分列车停运,以及https://m.gmw.cn/2024-02/04/content_1303652749.htm
6.JS实现动态通知弹窗特效插件源码简介:JavaScript在前端开发中至关重要,用于创建交互式网页效果。本压缩包包含一个用JavaScript编写的插件,实现网页右下角的动态消息通知功能。插件工作原理包括创建消息框元素、设置样式、定位元素、添加内容、添加动画效果、事件监听、自动关闭和销毁元素等。源码支持模块化开发,适合前端开发者学习和参考。 https://blog.csdn.net/weixin_42103128/article/details/142656910
7.讯飞星火隐私政策对于那些无端重复、需要过多技术手段(例如,需要开发新系统或从根本上改变现行惯例)、给他人合法权益带来风险或者非常不切实际(例如,涉及备份磁带上存放的信息)的请求,科大讯飞可能会予以拒绝。 如果您无法查阅、补充、更正、删除、复制、转移您的个人信息,或改变您授权同意的范围或撤回授权、注销账号、和关闭消息通知,https://xinghuo.xfyun.cn/policy/%E8%AE%AF%E9%A3%9E%E6%98%9F%E7%81%AB%E9%9A%90%E7%A7%81%E6%94%BF%E7%AD%96v2
8.关闭iPhone后台应用刷新,会影响App接受通知吗?以微信为例,当你打开“后台应用刷新”,在收到新消息提醒之后,只要打开微信,就能看到新消息已经显示在消息列表,不过这需要网络良好且内存足够;而当你关闭“后台应用刷新”,接受并显示消息这一过程从打开微信后才会开始。 无论开启或者关闭该功能,都不会影响消息推送,也就是说即使关闭“后台应用刷新”,处于后台状态的https://m.i4.cn/news/30501.html
9.隐私政策您关闭权限的决定不会影响此前基于您的授权所进行的个人信息的处理。 (7)消息通知 您知悉并同意,对于您在使用产品与/或服务的过程中提供的您的联系方式(例如:联系电话),我们在运营中可能会向其中的一种或多种发送多类通知,用于用户消息告知、身份验证、安全验证用途,如您不愿接受这些信息,您可以通过手机短信中http://laofuzi.kakamobi.com/agreements/privateAgreement.html?_productCategory=jiaolianbaodian&_product=u6559u7ec3u5b9du5178&_appName=%20jiaolianbaodian
10.软媒要知隐私保护政策2.2.2 当您更换头像时,我们可能会向您请求相机(摄像头)、存储权限,相机(摄像头)、存储权限是敏感权限,拒绝提供仅会使您无法使用拍照、读取本地图片功能,不影响其他功能的使用。 2.3 安卓端自启动/关联启动功能。 i)推送通知消息:为了保证推送服务可靠,我们集成了各厂商推送SDK及友盟推送SDK,我们基于一定策略在不同https://www.ruanmei.com/agreement/yaozhi/privacy.html
11.钉钉怎么关闭消息提醒新消息通知设置教程当用户在手机钉钉中收到了新的消息后,就会出现通知提醒,而且还有提示音。但是可能有时候我们正在休假阶段,这个时候不想看到钉钉的消息通知,如果想要关闭该怎么弄呢?本文将为大家介绍钉钉新消息通知提醒的设置教程。 钉钉怎么关闭消息提醒? 1、进入钉钉后,点击左下方的【消息】。 https://shouyou.3dmgame.com/gl/231849.html
12.微信的消息通知弹出怎么关闭?小技巧来啦!手机知识3、设置界面点击新消息通知选项; 4、打开的界面点击新消息系统通知; 5、然后就可以看到提醒方式,我们可以选择关闭横幅提醒,点击一下即可关闭这个功能。 总结:大家打开微信设置,选择新消息提醒,点击消息系统设置取消横幅通知就可以了,这样微信就不会显示了!http://www.dnpz.net/sjzs/5299.html
13.拼多多的消息通知怎么关闭?如何让拼多多不弹出信息?订单跟踪: 如果您关闭了订单通知,请确保您知道如何手动跟踪您的订单进展,以免错过重要信息。 特价商品和促销: 虽然关闭了特价商品和促销通知,但您仍然可以通过浏览拼多多的商品页面来寻找最新的优惠和折扣。 消息通知: 如果关闭了消息通知,确保您定期检查拼多多的消息中心,以查看其他用户和卖家发送给您的消息。https://www.jianshu.com/p/68c0571aebe3