好记性不如烂笔头。生活中多做笔记,不仅可以方便自己,还可以方便他人。
有没有发现,有时候表情或图片的交流更能让气氛更愉悦。斗图,成了群里的日常小事,然而,当你没有图可斗的时候就尴尬了。最近,搜狗输入法提供了非常强大的各种斗图大全,这可不得了了,只要输入法你希望表达的意思的文字,就能搜到到相应意思的表情,这功能非常有意思。
最近,老大要我研究一下搜狗输入法是如何直接在微信和QQ上发图片和表情的。作为“”开发汪”,面对新的东西,内心是“”鸡冻”澎湃的,立马拍拍胸口“包在我身上”。
二话不说,我先是google,百度了一番,结果什么有用的相关信息都没找到,因为输入法开发本来就非常少。于是开始猜测是通过微信SDK分享的,查阅了开发文档,确实,微信有分享图片和表情包的SDK。于是,我注册了一个开发者账号,等了几天,终于审核通过了。
然鹅,通过微信SDK分享的途径,虽然能分享,但是都必须跳转到选择好友界面,而不是直接在好友界面发送图片或表情。于是,我继续查阅,看看能否有方法绕过微信的SDK分享,然后,在CSDN上找到了这个:
没错,通过这种方法,确实可以绕过微信的SDK,但是这种方法还是会跳转到选择好友界面。没办法,只好去反编译搜狗输入法apk来看看了。
好了,我们再来分析一下,从if里面内容来看,这里最终做了一个操作 a2.commitText(charSequence, 1) ,这个操作就是输入法用来提交文字的,也就是说搜狗输入法把一串文字提交到输入框,然后就发送了图片或表情。什么鬼?输入一串文字就能发送图片了?
原来最强大的是微信的编辑框,可以识别文字路径下的图片。好了,真想大白了,如果你做的是输入法开发,那你也可以这样直接发表情和图片了。
搜狗输入法的表情包分为本地的和在线的,本地的可以通过发送路径,那在线的呢?这还不简单,把在线的下载到本地不就行了吗,表情非常小,所以下载也很快。我顺便发一下搜狗输入法的表情包保存位置吧:
目前是这样,不知道将来会不会改,你可以到这里面去看,里面保存了很多表情。
所以,很显然,这是搜狗输入法跟QQ约定好的一个操作。我简单的尝试了一下,也通过发送这条命令,但是没有成功,那就不知道QQ里都干啥了。