极光征文如何实现emoji表情的推送😆

author author     2023-05-03     661

关键词:

参考技术A 在开发中难免有些奇葩的需求。正常使用极光推送的都知道,是通过后端直接推字符串,或者json数据

首先在推送前要和后端约定好。
比如以这个表情为例
😀
数据格式1:(UTF-8编码)

数据格式2:

首先说一个场景:
A.用户输入一个带😆表情,然后提交给服务端,注意,这时候服务端收到的不一定是😆,而是被编码后的 \uD83D\uDE00 ,这是个UFT-8编码。
如果这时候服务端需要将这个带😆的表情再转发给用户B,那么B收到的也是 \uD83D\uDE00 。

用极光推送测试情况1

用极光推送测试情况2(这里在指不通过服务端,直接在极光的后台操作)

针对这种推送,到达手机的显示也是UTF-8编码过的,如果想要在手机正常显示表情,需要对字符串解析,以安卓为例使用Gson

解析完成把setText字符串,就能显示表情了

注意这里控制台打印的log是无法识别的字符

最后在手机上显示是这样的

在这个时候直接使用通知栏推送utf-8编码过的表情显然就不行了
然后想象是否可以同过通知栏入手,在接收到系统通知的时候先对消息做序列化处理,处理后再提醒,于是查阅极光的推送文档发现了这个

文档也说了,建议我们使用自定义消息,但是如果使用极光的自定义消息,通知栏是没有提示,这里还需要我们自定义通知栏。

所以为了兼容这种奇葩的推送内容,就只能采用自定消息+自定义通知栏的方式了。

以Android为例:
1、服务端要通过极光发送带表情的推送,则在服务端将表情转成utf-8编码,或者用户在提交的表情到服务端的时候本地对带表情的字符串做反序列化操作

2、如果服务端拿到了编码后的表情,想推送给其它用户怎么办?

那就需要推送一条自定义消息了,注意一定要是自定义消息。普通消息会直接在通知栏显示,对未序列化过的例如 \uD83D\uDE00 ,通知栏所出现的还是原编码后的消息。

如果要在客户端显示就必须在自定义消息中手动进行序列化处理。

这样做虽然麻烦了点,但是能避免客户端收到一些乱码。

还有一种情况是,服务端返回给极光推送是 😆 ,但是通过极光转发后就变成了 �� 这样的非法字符,所以针对这种情况建议服务端给提供编码后的utf-8字符,不要直接丢表情过来。

更高级的,还可以对通知栏自定义,推送图片URL等。

再补充一点,如果在用户编辑输入框的时候,不想让他输入 emoji 表情,那么就要通过正则取匹配 emoji 的字符集,如果查到了说明是 emoji 表情,可以给提示禁止输入非法字符等

源码:
MyReceiver.java

另外
关于推送你还可能想要了解的:

「本文为 极光征文 参赛文章」

ios推送功能极光推送的介绍与实现

1、个人整理操作流程2、官方使用说明流程2018iOS极光推送完整流程极光推送官网 查看详情

如何利用java语言实现消息推送到手机app

...微信号,那就直接调用短信接口或直接发送微信信息了。极光推送服务是一款免费的第三方推送消息的平台。极光推送从整体来说还不错,具有以下优势:1、开放注册,免费向所有的开发者开放使用。2、极光推送-JPushSDKJPush是... 查看详情

点击极光推送,实现跳转

  说实话,极光推送接触过好几遍了,但是每次开发都是实现简单的展示功能,最近接手的一款app要求只在后台展示,还要实现点击通知栏跳转到相应的详情界面,于是便以为很简单的开始了,而且还很嗨的那种,以为自己没... 查看详情

极光推送的代码实现

一:去官网下载SDK或者直接在maven项目中进行相应配置<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> 查看详情

input保存emoji发送java

...个问题,APP订单评论提交emoji表情的话会报错,由于需要实现emoji表情评论的功能,根据自己实现的方式以及查询的实现方式,现总结为一下几种mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8不支持... 查看详情

如何在python中使用表情(emoji)符号?(代码片段)

...们的python程序中使用表情符号。在本文中,您将学习如何在python中使用表情符号。为了在python中使用表情符号,我们需要安装一个emoji库,打开命令提示符并运行此命令。pipinstallemoji该命令将emoji在您的计算机上安装... 查看详情

微信公众号自定义菜单栏如何加emoji表情等图标

...进行复制粘贴使用;参考技术A微信公众号自定义菜单栏如何加emoji表情等图标这个问题我之前遇到过,挺容易解决的,接下来就跟大家讲讲应该怎么操作:工具:WIN10,小*蚂*蚁编辑器第一步:搜索微信公众平台并进行登录账号... 查看详情

关于极光推送的配置

1、按照官方文档生成一个实现极光推送的demo,生成极光推送demo。2、解压得到的.zip文件,将得到的lib下的文件复制到你新建的工程的lib目录下,并且在在module的gradle配置中添加一下配置:android{......sourceSets{main{jniLibs.srcDirs=[‘li... 查看详情

移动端过禁止输入emoji表情实现方案

最近手头上的项目有一个需求就是输入框不能输入表情,然后就各种在网上找资料,网上好多人给的方案是:str=str.replace(/uD83C[uDF00-uDFFF]|uD83D[uDC00-uDE4F]/g,"");用法大概就是:<inputonkeyup="this.value=value.replace(/uD83C[uDF00-uDFFF]|uD83D[uDC0 查看详情

java处理emoji表情

...情转换成另一个字符,今天我们就测试一下第二种方法。实现我们需要使用第三方开源库emoji-java,github地址<dependency><groupId> 查看详情

怎么实现订阅号消息推送到手机通知栏?

...而关于消息推送可以利用第三方工具帮忙实现,例如深圳极光,深圳市和讯华谷信息技术有限公司创立于2011年,其团队核心成员来自腾讯、摩根士丹利、豆瓣、Teradata和中国移动等公司。极光推送有如下优势:一、便捷的使用体... 查看详情

android使用极光推送自定义消息打造个性的消息推送效果

极光推送,是一个面向普通开发者开放的,免费的第三方消息推送服务。本篇博客将结合案例介绍极光推送自定义消息的使用方法,利用自定义消息实现项目中特定的消息推送需求。本案例将实现如图效果:参考... 查看详情

cordova+vue项目实现极光推送功能

1.首先得在极光注册开发者帐号:附上极光官网连接https://www.jiguang.cn/2.创建好帐号后点进进入极光开发者服务》》创建应用3.创建好应用会生成一个AppKey(后面需要),到这里还没完,切记点击下方的完成推送设置按钮4.点击后在推... 查看详情

极光推送工具类(代码片段)

...遇到服务器向App推送消息的需求,一般企业中选择用极光推送的比较多,在集成极光时发现极光的文档并不完整,网上的文章也很多不能直接使用,这里列出我在工作中集成极光的全部代码,只需要按照如下... 查看详情

如何在 React App 中显示 Emoji

】如何在ReactApp中显示Emoji【英文标题】:HowtodisplayEmojiinReactApp【发布时间】:2017-07-1222:12:54【问题描述】:我想在我的网页上的反应聊天应用中显示表情符号。该计划是为用户提供一个表情符号列表以供选择。如何使用“1F683”... 查看详情

极光推送,在推送之前,是不是能够查询,极光推送服务器是不是存在该别名

可以查询,极光推送,别名推送,可以点对点通讯。使用别名,用于给某特定用户推送消息。例如,注册帐号完成后,可以用别名推送的方式,把账户名当作别名推送给极光服务器,然后,服务器请求一下极光服务器发一条极光... 查看详情

微信小程序emoji表情输入框制作(代码片段)

...表情输入框,在这里记录分享一下文章目录效果演示实现思路全部源码地址效果演示小程序表情列表输入演示源码链接放到了最底部实现思路微信小程序默认支持emoji表情表情与文字类似,不同的是一个表情占用四个字节... 查看详情

ionic极光推送的使用:

1.到极光官网注册账号;2.应用设置中:  填写应用名称:  应用图标:3.保存上面的设置之后,到了推送设置了: 4.下载插件:如何遇到下载报错,可换种方法解决:切换到cordova插件目录下执行:D:Code 查看详情