微信小程序> 微信无响应,微信小程序button组件opentype="getUserInfo"点击无响应

微信无响应,微信小程序button组件opentype="getUserInfo"点击无响应

浏览量:1115 时间: 来源:qq_39436397
代码部分:buttonopen-type="getUserInfo"bindgetuserinfo="getUserInfo"hover-
viewclass='p_text'确定/view
/button
getUserInfo:function(e){
letthat=this;
letappget=e.detail;
console.log(appget)

1.先确认button的绑定事件有没有生效,没有生效的情况下,问题有几点导致:
a.页面代码错误,这个时候就要仔细阅读官方文档,或者查看官方demo
b.页面绑定的方法内部逻辑是否出错,可以仔细用控制台和debuger检查
c.在一个小程序内如果有很多个button获取用户信息的组件,也会出现点击无响应的bug,目前不清楚是什么原因,如果有人发现,请在评论下方留言
这里贴一下我写的前端代码:

2.在确认button的绑定事件生效的情况下,那就要查看在向服务器端传递参数时有没有遗漏,或者编码错误。在服务端确认已经接=收到加密的微信用户后。
3.服务端接收到加密的微信用户信息后,用微信小程序提供的SDK进行解密(SDK小程序官网自行下载,用详细接入文档)。解密完成后获得可以用来保存到数据库的数组,检查字段和表字段的格式是否一致,字符长度等等;
这里是我写服务端的接口代码:


4.在保存的数据库的过程,有一个比较隐秘的问题,插一句-我这里是mysql数据库。微信用户昵称现在丰富多样,一些个性的名称中经常包含有特殊字符,以及emoji表情。一开始我以为纯文本格式完整保存微信用户昵称(emoji表情),看了很多文章才发现,文本和表情的编码不一样:
以下为解决方法:
a.unicode定义的emoji是四个字符,softbank为3个字符,emoji的四个字符从存储到展示对应没有做过考虑的系统来说,简直就是灾难。unicodeemoji是4个字节,softbank定义的emoji占用3个字节存储,通过emojiforphp,我们可以把unicode的emoji方式转换为softbank方式,从而实现不修改数据库,就能存储emoji,相对于数据库层面的解决问题的方式,动作要小的多,并且也不会有性能,运维等方面的问题。但是有个不可避免的问题是,Softbank方式已经不再维护,所以新增加的emoji表情,Softbank中都没有,会造成部分emoji表情丢失的情况,对于这种情况不推荐使用。
b.使用utf8mb4字符集如果你的mysql版本=5.5.3,你可以尝试直接将utf8直接升级为utf8mb4字符集这种4字节的utf8编码可完美兼容旧的3字节utf8字符集,并且可以直接存储emoji表情,是较好的解决方案之一。至于字节增大带来的性能损耗,根据自己的项目,自己估算吧....
MySQL在5.5.3版本之后增加了这个utf8mb4的编码,mb4就是mostbytes4的意思,专门用来兼容四字节的unicode。其实,utf8mb4是utf8的超集,理论上原来使用utf8,然后将字符集修改为utf8mb4,也会不会对已有的utf8编码读取产生任何问题。当然,为了节省空间,一般情况下使用utf8也就够了。想了解更多,请前往
c.使用base64编码如果你因为某些原因无法使用utf8mb4字符集的话,你还可以使用base64来曲线救国使用例如base64_encode之类的函数编码过后的emoji可以直接存储在utf8字节集的数据表中,取出时decode一下即可
D.针对unicode定义的emoji表情过滤①.unicode定义的emoji是四个字符,根据这个原理进行过滤
functionFilterEmoji($data){$data=preg_replace_callback('/./u',function(array$match){returnstrlen($match[0])=4?'':$match[0];},$data);return$data;}

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎