- wx.onError、App.onError疑惑及如何捕获Promise异常?
1、官方文档上说 wx.onError 和 App.onError 的回调时机与参数一致(https://developers.weixin.qq.com/miniprogram/dev/api/base/app/app-event/wx.onError.html),是指两种方式收集到的异常信息完全一致吗?我们实践过程中发现,wx.onError 获取到的信息比 App.onError 要少。 在我们上一个版本的微信小程序中,我们是在 App.onError 中监控异常,并通过 ELK 收集、查询异常。收集到的部分异常信息截图如下: [图片] [图片] 在我们小程序的最新版本中,我们使用了针对小程序平台的 Sentry SDK(https://github.com/lizhiyao/sentry-miniapp,该 SDK 原理是使用 wx.onError、wx.onPageNotFound、wx.onMemoryWarning 监控异常信息)进行信息收集上报,基于公司私有化部署的 Sentry 服务接收、存储、展示异常信息。结果发现 Sentry 服务没有收到 wx.onError 上报的异常(1. 上线之前有做过测试,Sentry SDK 是可以正常上报代码执行异常的。 2. 可以收集到页面无法找到、内存警告异常,说明线上版本小程序中 Sentry SDK 已经成功初始化,可以进行信息上报): [图片] 但是官方的微信预警群是有推送异常信息的: [图片] [图片] [图片] 2. App.onError 收集到的信息和官方后台运维中心收集到的信息是一致的吗?我们发现 onError 捕获的信息,在小程序官方后台查不到。 比如: 通过 App.onError 在 8.12 收集到了这样一条异常信息: [图片] 在小程序官方后台是搜不到这个异常信息记录的: [图片] 3. 假设 wx.onError 和 App.onError 获取到的异常信息完全一致,且和官方后台收集记录的异常信息完全一致。如果小程序后台运维中心的预警推送频率设置为 1次/5min,那么 onError 获取到的信息和微信预警群推送的信息完全一致吗? 4. 关于 Promise 的异常,对于浏览器有 window.onunhandledrejection,对于 node 有 global.process.on('unhandledRejection', callback()),对于小程序平台,有什么推荐的方式可以获取到 Promise 的异常吗?官方后台运维中心有收集到小程序中 Promise 中的异常吗?目前实践来看,小程序的 App.onError、wx.onError 中是无法捕获 Promise 的异常的。示例代码可参考:https://github.com/lizhiyao/sentry-miniapp/blob/master/examples/weapp/app.js 。 5. 在小程序官方后台及官方预警群中,会发现偶尔会出现非线上版本的异常被收集和上报了。请问这种情况是正常的吗? 比如:截图中 小程序版本对应为 0 的就是我们未发布版本代码中出现的异常。判断的依据是 /pages/homepage-config/skilled-tag/index 是新版本新增的页面,异常上报时新版本并未发布。 [图片]
2019-08-15 - textarea iOS 输入光标交互与 Android 不一致
反馈的问题,即是一个 Bug ,也是一个需求。 背景 需要使用 textarea 组件实现一个具有草稿功能的多行输入框。 目前的实现方式为: wxml: [代码]<[代码][代码]textarea[代码][代码] [代码][代码]focus[代码][代码] [代码][代码]value[代码][代码]=[代码][代码]"{{ content }}"[代码][代码] [代码][代码]selection-start[代码][代码]=[代码][代码]"{{ cursorIndex }}"[代码][代码] [代码][代码]selection-end[代码][代码]=[代码][代码]"{{ cursorIndex }}"[代码][代码] [代码][代码]bindinput[代码][代码]=[代码][代码]"handleContentInput"[代码][代码]/>[代码] JS: [代码]handleContentInput(e) {[代码][代码] [代码][代码]const { value, cursor } = e.detail;[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]content: value,[代码][代码] [代码][代码]cursorIndex: cursor[代码][代码] [代码][代码]});[代码][代码]}[代码] 如果是 Bug: * Bug 表现是什么?预期表现是什么? 在 iOS 的小程序中,在 textarea 中输入一段话,然后将光标移动到这段话中间的某个位置后修改这段话,修改后 cursor 会返回光标所在位置,但是光标最终还是会跳到这句话的最后。 在 Android 上光标不会跳到最后的位置。 预期表现是光标位置与 Android 上表现一直,即在 cursor 所对应的位置。 * 如何复现? 在 iPhone 上使用丁香医生小程序,从首页点击快速提问,进入写问题页面输入内容即可复现。 ------------------------------------------------------------------------------------------------------------------- 如果是需求: * 你希望有什么能力? textarea 组件有一个属性可以设置初始值。 * 你需要这个能力的场景是 ? 利用 textarea 实现草稿功能时,不需要利用设置 value 的方式实现草稿功能,从而可以遵从官方文档上的建议:不建议在多行文本上对用户的输入进行修改。
2018-01-30 - 在iPhone5 上,部分文字会换行
问题描述: 在开发者工具上和iPhone6等机型上,样式没问题。但是在iPhone5 上,部分文字会换行。 解决办法: 对换行文字的容器填下如下样式代码: white-space: nowrap; 或许这是一个bug。
2016-12-30