我们也遇到这个问题,希望官方给个解决方案
选择图片或者拍照后上传图片,小程序直接闪退- 当前 Bug 的表现(可附上截图) 最近一直收到用户反馈,说是上传图片时,直接闪退。客服通过与用户沟通,做了如下尝试: 1、让用户自己重启微信,重启手机等操作(有一小部分用户重启手机后,上传图片暂时可用,连续用几天小程序后又出现闪退现象) 2、让用户一次只选择一张图片,不要选择多张同时上传(然并卵,照样闪退) 3、尝试上传图片时,不压缩图片(好像默认还是有压缩,因为上传后的大小和原图大小不一样,闪退现象还是存在) 4、尝试在wx.chooseImage的fail方法中给用户提示(先过滤掉手动取消的,再过滤掉未授权微信拍照权限的,但是,线上闪退用户根本没有弹出错误提示信息) [图片] (第四条的补充图片) [图片] (用户给的截图,提示压缩中,然后就是闪退,一直上传不成功) 我们也做了错误日志的上报,把所有可能出错的地方,都上报了日志,以下是wx.chooseImage的部分截图: [图片] - 预期表现 希望微信选择图片时,不要闪退!不要闪退!不要闪退! 或者在小程序崩溃之前能给用户提示,比如内存不足?机型不适配? 用户出了问题,只会觉得小程序垃圾,不会认为是底层实现的问题,烦请官方人员排查一下wx.chooseImage的问题。
2018-12-19直接保存到globaData
(已解决)大家怎么保存登录态的?实测 setStorageSync 似乎不可靠提了问题一天后,问题解决了: 不是 setStorageSync 的问题。 是我们自己后端的问题。 原因是我们用 union_id 进行用户的查找 Ruby on Rails 代码如下(片段): User.where(wechat_unionid: unionid) 在用户没有关注公众号的情况下,unionid 是拿不到的,出错了。 换成 open_id 后一切恢复正常。没有关注公众号的新用户在使用小程序的时候也可以正常访问了。 非常感谢各位的热心帮助 ------------------以下是原问题的描述-------------------- 登录态的定义: 自己业务后端给出的 JWT token,比如:eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiZ1hXTSIsImNyZWF0ZWRfYXQiOiIyMDE4LTExLTE0VDE2OjM4OjQ5KzA4OjAwIn0.MmxhdbUOp3U5LA4azLeIj8nXikSWAa0gyD13NF3AXpQ 重点 这个问题的重点不是 JWT,重点是用户登录态的存储方法 (setData/globalData/setStorageSync) 最早时我是用 setStorageSync 存储 token,然后马上从"登录页"跳转到"首页" (备注:我们小程序里只用了微信登录,完全没用手机号+密码登录或者邮箱+密码登录等方法) 另外,因为业务需求,我在"首页"加了登录检测,如果没登录就自动跳到"登录页" 造成了什么问题 在小部分情况下会造成无限跳转,永远困在登录页 具体情况:登录页->首页->登录页->首页->登录页 在我的开发者工具+真机上测不出来这样的问题。但是每次审核的时候就通过不了,每次都是不同的机型报错: 审核拒绝信息: [图片] [图片] [图片] 问题排查 在网上搜了一圈,看到了这篇文章: https://blog.csdn.net/qq_41813695/article/details/80812794 试了一下,把 getStorageSync 从 onLoad 移动到 onShow 里,并没有解决问题。 最新这一次的审核还是失败了(提示 iPhone 5S 用不了) 是否有代码可以重现? 我在本地和真机都无法复现,都是审核的时候说过不了。所以我觉得提供代码应该没啥帮助。 就是很简单的 setStorageSync 然后 getStorageSync 我的 APPID wx3e98618e26700e1b 我想问的问题是 大家都是怎么存储登录态的?(setData/globalData/setStorageSync/其他方法)? 我的计划 (换成 globalData,因为 setStorageSync 实在不可靠,连续2次都无法过审)
2018-11-27https://github.com/b5156/wxapp-computed
小程序有没有类似vue或者mobx提供的计算属性?小程序有没有类似vue或者mobx提供的计算属性? 比如登录的这个业务场景: 需要输入账户,且账户位数是11位 需要输入验证码,且验证码位数是4位 此时,登录的按钮才可以点击。 目前小程序里面实现是这样的: [代码]Page({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码] phoneValue: [代码][代码]''[代码][代码],[代码][代码] [代码][代码] verifyCodeValue: [代码][代码]''[代码][代码],[代码][代码] [代码][代码] canLogin: [代码][代码]false[代码][代码],[代码][代码] [代码][代码]},[代码][代码] [代码][代码]bindPhoneInput: [代码][代码]function[代码] [代码](e) {[代码][代码] [代码][代码] const phoneValue = e.detail.value;[代码][代码] [代码][代码] [代码][代码]this[代码][代码].setData({ phoneValue, canLogin: [代码][代码]false[代码] [代码]});[代码][代码] [代码][代码] const { verifyCodeValue } = [代码][代码]this[代码][代码].data;[代码][代码] [代码][代码] [代码][代码]if[代码] [代码](phoneValue && verifyCodeValue && phoneValue.length == 11 && verifyCodeValue.length == 4) {[代码][代码] [代码][代码] [代码][代码]this[代码][代码].setData({ canLogin: [代码][代码]true[代码] [代码]});[代码][代码] [代码][代码] }[代码][代码] [代码][代码]},[代码][代码] [代码][代码]bindVerifyCodeInput: [代码][代码]function[代码] [代码](e) {[代码][代码] [代码][代码] const verifyCodeValue = e.detail.value;[代码][代码] [代码][代码] [代码][代码]this[代码][代码].setData({ verifyCodeValue, canLogin: [代码][代码]false[代码] [代码]})[代码][代码] [代码][代码] const { phoneValue } = [代码][代码]this[代码][代码].data;[代码][代码] [代码][代码] [代码][代码]if[代码] [代码](phoneValue && verifyCodeValue && phoneValue.length == 11 && verifyCodeValue.length == 4) {[代码][代码] [代码][代码] [代码][代码]this[代码][代码].setData({ canLogin: [代码][代码]true[代码] [代码]});[代码][代码] [代码][代码] }[代码][代码] [代码][代码]}[代码][代码]})[代码] 这样的代价是需要在需要组合属性判断的地方,全部都维护一次canLogin来渲染页面,组合属性越多的话,代码维护就越麻烦,且非常不优雅。 有没有类似vue里面的computed,或者是mobx里面的computed这种计算属性的方式来应对这种业务需求呢?
2018-08-20[图片]
开发者工具,不停的自动刷新开启了修改代码后自动刷新,但是在我没有编辑代码的情况下,也会时不时的自动刷新跳转到首页。没有打开其他编辑器或可操作代码的工具。
2018-06-01