部分用户诉求昵称可以添加Emoji,所以开启了Emoji在Android平台展示的调研之路。
前言
在调研开启前,我们带着几个问题来开展调研。
1.Emoji 在Android IOS Web 三端显示情况如何,是否全部Emoji能做到正常显示。
2.后续更新的Emoji在Android 低系统版本设备是否可以正常显示,是否需要版本适配。
3.在实际应用中,因为有些场景用户昵称显示长度有限,我们需要对用户昵称进行截断显示,是否可以判断是否是一个完整的Emoji以及对Emoji进行完美截断显示。
Question: 有关于Emoji大家感兴趣的话题可以在这里盖楼,我会定期回复的。
结论
在Android平台的显示情况如下:
1.完美显示情况:
谷歌已经提供,安卓设备上显示已存在的表情进行完美显示的控件。
2.是否需要低版本兼容:
需要兼容,需要进行Emoji字库下载到手机设备中,才能正常显示。
3.是否可以判断一个完整的Emoji以及完美截断:
解决方案有三种:
1)根据字符长度来裁切。
可实现样式:单个Emoji显示没问题,组合Emoji,比如一家四口,会裁掉一个人,变成一家三口显示。
缺点:显示会缺失,但是不会不显示或者显示错误。
2)自研算法来裁切。通过读取字符串序列中含有EmojiUnicode,并且识别下一个节点既不是表情修饰符也不是表情连接符等,恰好也是EmojiUnicode。那么就判断此为两个Emoji的分隔。
可实现样式:可以达到完美裁切。
缺点:需要自研算法,和通过验证不同类型Emoji显示,来提升自研算法的成功比率。
3)android提供的emoji2依赖库中,通过EmojiSpan获取到emoji的unicode起始索引和unicode结束索引,通过这个索引就可以做到类似一家三口的完美截断了。
随着问题的深入开始不仅仅从单一解决问题的视角来看待这个问题,而是从搞清原理到业务实践一系列环节来搞清楚这个问题。
第四层实际业务的使用场景业务使用场景
第三层技术实现设计技术设计(例 Emoji存储 等)
第二层在不同平台的显示情况和库支持情况OS平台对Emoji库支持情况、不同变量因素的设备显示情况(©)、在PICO上显示情况、分享H5
第一层需要搞懂的底层原理Uniconde Emoji 官方文档的介绍与编码规则等说明
变量因素:
1、Emoji 在微信 QQ 抖音的显示情况
2、在不同Rom显示情况,字体是否是影响Emoji显示的变量因素
3、不同手机厂商,是否是影响Emoji显示的变量因素
4、在不同OS显示情况:android ios,是否是影响Emoji显示的变量因素
5、字体是否是影响Emoji显示的变量因素
其实文档写到这里,已经到达第二层了,待我们做完Demo以后,在各个变量因素下的显示效果报告出来后,再继续帖子。
网友评论