tencentchatpushforchina2.2.0

腾讯云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.qq离线请留言什么意思(qq显示的离线请留言和离线有什么区别)给离线的好友留言的方法如下: 第一步:打开QQ,点击界面下方的“联系人”按钮。 第二步:在随后弹出的页面中将好友列表下滑,找到一个需要留言的离线好友,查看状态若为“离线请留言”则留言后可能在24小时内得到回复。 第三步:在随后进入的界面中点击下方的“发消息”。 http://www.wengnai.com/html/706009.html
2.手机qq怎么设置离线手机qq怎么设置离线 在现代社交生活中,QQ作为一款经典的即时通讯工具,仍然拥有庞大的用户群体。有时,我们可能希望暂时离开QQ,但又不想被频繁的消息打扰,这时设置离线状态就显得尤为重要。下面,我们将详细介绍如何在手机QQ上设置离线状态。 首先,打开手机上的QQ应用,进入主界面。主界面会显示你的好友列表以及你当前的https://g.pconline.com.cn/x/1857/18576021.html
3.QQ状态之谜,频繁在线离线引发网友热议生活摘要:关于QQ状态之谜,用户时而在线时而离线的情况,引发了广泛讨论。这一现象可能是用户本人在忙碌中切换状态,或是网络波动导致状态显示不稳定。QQ状态的显示并不能完全反映用户的真实在线情况,因此这种变化状态的现象具有一定的迷惑性。具体真相需结合实际情况和用户习惯来判断。 http://app.gxstnypt.cn/post/17989.html
4.QQ中的4G在线标志,技术原理与含义解析五金交电摘要:,,本文探讨了QQ上4G在线的含义及其技术原理。4G在线是QQ状态的一种显示,表示用户当前使用的设备正在通过4G网络连接到QQ。背后的技术原理涉及到移动网络的演进和QQ软件的功能设计。通过了解4G网络的高速数据http://xjxygt.cn/post/15467.html
5.qq显示2g一天后离线怎么回事qq偶尔显示2g在线一会又显示离线怎么办 1. qq一般显示2g在线的情况下,就是说明用户没网了。 2. 这个时候用户需要检查自己的网络,pc端检查路由器连接情况。 3. 移动端需要检查自己的手机网络是否正常,信号是否正常。 4. 有可能是手机欠费导致的网络不可使用,或者是区域信号太差。https://www.riahome.cn/s/ero42x503.html
6.QQ在线状态设置方法QQ在线状态怎么设置大家在使用QQ和好友聊天的时候,可通过查看好友状态,了解他是否在线,那么自己该如何设置在线状态呢,也可以让大家通过观看自己状态,了解自己是否在线,一些用户也很想知道QQ在线状态设置方法,针对这个问题,小编给大家带来了QQ在线状态设置方法,有需要了解的小伙伴快来一起看看吧,希望对大家有所帮助。 QQ在线状态设置方法http://m.zhipinji.com/jxks/62236.html
7.qq怎么设置离线状态qq设置离线状态方法介绍在手机QQ中,实际上并没有明确的“离线”状态设置,因为离线状态指的是账号本身没有登录或者主动下线的状态。然而,如果想在登录QQ时展示一种不会被他人轻易察觉在线的“隐身”状态,你可以选择“隐身”模式,这样在好友列表中显示的状态就是离线,下面一起来看看离线的设置方法吧。 https://app.ali213.net/mip/gl/1365261.html
8.qq在线状态怎么设置离线离线在线状态设置方法qq的在线状态是可以设置成离线的,但是有的小伙伴却没有找到这个在线状态在哪里,一直设置不了。那么qq在线状态怎么设置离线呢?下面小编就为大家带来了具体的设置方法介绍,我们一起来看看吧! qq在线状态怎么设置离线? 1、打开手机QQ,点击头像,然后点击侧边栏下方的“设置”。 https://app.3dmgame.com/mip/gl/257356.html
9.手机QQ过挂着不聊天,会浪费流量吗?5元的流量是多少?浙江宁波地区的怎么具体到5元30MB的套餐,这30MB的流量在一天内足以满足多数用户的日常聊天需求。然而,如果手机QQ长时间保持在线状态而不进行任何聊天活动,是否会导致额外的流量消耗呢?答案是否定的,因为在非活跃状态下,手机QQ不会主动发送数据包,因此不会产生额外的流量费用。当然,如果用户在非聊天状态下开启了视频https://zhidao.baidu.com/question/1553666400764858507.html
10.在线QQ客服显示QQ离线是怎么回事如何解决建站帮助中心在线QQ客服显示“QQ离线”是怎么回事?如何解决? 腾讯在线状态服务已经升级为企点,如果之前没有开通将不能用个人QQ作为在线客服。以下教程为之前已经开通功能的设置方法 。 为网站设置在线QQ客服几乎是每个网站必备的功能,近期因腾讯QQ在线状态服务的功能升级,导致部分商家qq在线状态显示为“未启用”。,为了更好地帮助https://help.websitemanage.cn/show/279.html
11.qq离线是退出账号了吗(QQ离线是否会自动退出?)其实,QQ离线状态是否自动退出并不影响用户的使用。个人观点来看,如果你需要长时间离开电脑或者不需要在QQ上保持在线状态,可以考虑设置自动退出,以保护账号安全。但是,如果你需要时刻与朋友保持联系,可以选择让QQ保持离线状态,不会影响用户的正常使用。 以上就是关于【qq离线是退出账号了吗(QQ离线是否会自动退出?)】的全http://m.szhk.com/news_31808383445359235.html
12.QQ状态显示为离线是什么意思?QQ离线状态是用户在使用QQ时常见的一种状态,了解其含义和原因可以帮助用户更好地掌握使用这款社交软件,通过合理的判断和应对策略,用户可以有效地管理自己的在线状态,并与好友保持良好的沟通。 到此,以上就是小编对于“qq状态是离线什么意思”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢https://www.kdun.com/ask/1279895.html
13.手机qq怎么设置离线状态如果我们上班必须用到QQ,但又不想被他人打扰,我们就可以把QQ设置为隐身状态。设置隐身状态后,当好友查看我们QQ账号的状态时,就会显示离线状态。接下来小编就告诉大家怎么设置QQ离线状态。 操作方法 01 首先进入手机QQ“消息”页面,点击左上角的QQ头像。 https://www.coozhi.com/youxishuma/shouji/49580.html
14.qq怎么设置离线状态qq设置离线状态方法介绍qq怎么设置离线状态,这也是一款非常实用的社交聊天类软件,那么大家在使用QQ的时候应该怎么将状态设置为离线呢,相信还有些用户不清楚如何设置。所以下面就为大家带来了qq设置离线状态的教程! qq怎么设置离线状态 1.首先打开下载好的手机QQ应用程序(未下载的用户们可以前往安卓应用市场、苹果商店以及QQ官网进行下载)。 https://www.973.com/liaotian/2121
15.手机qq如何设置离线状态手机qq怎么设置离线状态打开并登录手机QQ,点击左上角箭头处的【QQ头像】。 界面跳转,点击左下角箭头处的【设置】按钮。 界面跳转,点击界面顶部的【账号管理】。 界面跳转,点击箭头处的【在线状态】。 打开后,点击下面箭头处的【隐身】按钮。 最后,点击右上角箭头处的【确定】即可。https://m.liqucn.com/article/147108.wml
16.JS判断客服QQ号在线还是离线状态的方法要使用JavaScript判断客服QQ号的在线状态,首先需要了解原来QQ官方提供的在线离线状态代码可能不再准确。因此,为了实现此功能,可以通过调用腾讯提供的API接口来获取QQ号码的在线状态信息,并据此判断QQ是否在线。 以下是实现该功能所需的知识点概述: 1. HTML结构准备:需要在HTML页面上创建对应的客服显示元素。使用`div`元素https://download.csdn.net/download/weixin_38746574/13037904
17.qq离线是退出账号了吗?,QQ长时间不登陆会在几分钟到几小时内显示离线。VIP会员可以体验更长的离线时间,敏感账号可能保持永久在线状态。但是请注意,这些具体时间和规则可能会因为运营策略或系统维护等原因而发生变化。 QQ怎么退出离线模式 QQ是一款流行的社交和即时通讯软件,在使用QQ的过程中,有时可能会遇到需要退出离线模式的情况。退出离线模https://www.xiedaoicec.com/2e419613ecf8b26e.html
18.用户意见集中反馈展示答复:我们没有QQ,如果之前有同学通过漏洞下载了,更新到新版本,也会给清除的。 22.我无法更新,一直显示更新失败。 答复:请检查网络,或者和客服联系下,我们帮您看下。 23.今天能回复反馈吗? 答复:我们的反馈是不定期的哦,不是必须回复的,有典型的留言需要展示给大家的时候,我们会回复展示的。 https://www.fenbei100.com/html/news/notice/2021/0Q3612021.html
19.简单有效的查看QQ好友是隐身还是离线的方法介绍QQ技巧QQ专栏1. 首先登录QQ,找到隐身的好友。 2. 随便向其发送个离线文件。 3. 关键的一步来了,我们点击发送离线文件,上传后再点“撤回该文件”。 4. 弹出对话框,我们点“是”。 5. 如果对方真是离线状态,我们撤回该文件时,会提示我们“撤回成功,对方不会收到该文件。” https://www.jb51.net/qq/91726.html
20.qq离线消息的经典语句qq离线消息的经典语句3 1、我等待着,你却一直往前走,能相见才见怪了 2、你说过的你爱我,可到了最后却反悔了,你TM骗谁呢 3、我本就不是一个聪明的人,所以讲话别跟我绕弯子 4、越是喜欢一个人,越不知道该如何表现自己 5、我深知我不是你最爱的人,所以我才转身就走的 https://m.ruiwen.com/wenxue/juzi/640292.html
21.QQ在线状态(精选四篇)如果按照电缆运行是否带电对其进行测试和测量划分, 可以将检测划分为运行停止检测和在线检测两种, 在线检测是指对电缆在带电情况下进行的监测。其可以解决以往停止运行状态绝缘检测状态下间隔时间过长, 不能及时发现电缆绝缘缺陷, 特别是测试时会造成一定经济损失的弊端。 https://www.360wenmi.com/f/cnkey01qwlrd.html
22.从0到1开发一个聊天通讯服务复盘总结分享它的功能和微信和QQ**@ ** 功能一样,在聊天输入框里,当你 输入@键时, 弹出好友列表,然后从中选择联系人进行聊天。 @功能必须包括以下 3 个关键功能; 可以弹出联系人列表 可以监听输入字符内容进行过滤显示对应数据 删除@ 联系人 一开始, 我是 自己造了个@功能 轮子 搞了搞,后来才发现市场上有相应的https://xie.infoq.cn/article/e2d976e807f8ceb9adeaa298d
23.qq什么情况下显示离线一、手机WiFi和流量处于关闭状态时,运行QQ会显示离线状态; 二、将后台运行的qq彻底关闭时,QQ会显示离线状态; 三、qq设置了隐身功能,即使在线也会显示离线。 QQ是腾讯QQ的简称,是于Internet的即时通信软件,目前QQ已经覆盖Microsoft Windows,OS X,Android,iOS,Windows,iPhone,Linux等多种主流平台。 https://www.yunqishi.net/dnjc/sjjc/49130.html
24.qq离线留言不是说好了你昨天就该还我钱吗?怎么到现在都还没动静! 对不起,你所联系的用户因为太过帅气,已被腾讯公司删除。详情请咨询110,谢谢,再见。 拜托把你的自动回复关掉。我就是不关,你能把我怎么样啊?哼! 二师弟,你怎么才来啊? 肠胃建设中…… 您的QQ已经中了我安插的病毒,请不断向本人发信,否则本人一有闲暇https://www.unjs.com/z/1575311.html
25.qq怎么离线状态2024-10-13 【qq总是离线状态怎么办】QQ总是离线状态 (打一歌名) 谜底:《灰色头像》谜语大全 [阅读本文] 2024-10-30 领导推荐理由锦集四篇 晋升是一个汉语词汇,拼音是jìnshēng,指有等级之分的职务、职称等,从低级别向高级别的升迁。语出曹禺《王昭君》第一幕:“﹝姜夫人﹞熟悉后宫的礼仪,懂得一些https://www.oubohk.cn/k/qqzenmelixianzhuangtai/