- rich-text 组件解析较长 svg path 时发生栈溢出
rich-text 中,路径较长(一般的图标完全可以达到)的 svg 解析过程中会发生栈溢出。 上面的代码使用调试输出最完整的基础库 1.9.0 进行测试,报错如下: [代码][代码]VM9442:2 webviewScriptError Maximum call stack size exceeded;[Exparser] [Error] [Component] Lifetime Method Error @ wx-rich-text#attached RangeError: Maximum call stack size exceeded at u (http://127.0.0.1:58060/__pageframe__/__dev__/WAWebview.js:13:19183) at e (http://127.0.0.1:58060/__pageframe__/__dev__/WAWebview.js:13:19775) at u (http://127.0.0.1:58060/__pageframe__/__dev__/WAWebview.js:13:19319) at e (http://127.0.0.1:58060/__pageframe__/__dev__/WAWebview.js:13:19775) at u (http://127.0.0.1:58060/__pageframe__/__dev__/WAWebview.js:13:19319) at e (http://127.0.0.1:58060/__pageframe__/__dev__/WAWebview.js:13:19775) at u (http://127.0.0.1:58060/__pageframe__/__dev__/WAWebview.js:13:19319) at e (http://127.0.0.1:58060/__pageframe__/__dev__/WAWebview.js:13:19775) at u (http://127.0.0.1:58060/__pageframe__/__dev__/WAWebview.js:13:19319) at e (http://127.0.0.1:58060/__pageframe__/__dev__/WAWebview.js:13:19775) [代码][代码] 随便找个形状稍微复杂一些的svg图标替换上述代码,也能复现。 我们的产品用 rich-text 解析微信推送文章,上述问题会影响线上版本的有关功能,希望得到修复。
2018-05-08 - iOS 最新版 map 组件动态改变 markers 出现叠加重影
【此问题影响了线上小程序的正常工作,希望尽快修复】 系统版本:iOS 10、11均可复现 微信版本:6.5.18 问题描述:map 组件使用 setData() 动态改变 markers 时,原来的标记不会被清除,新标记会叠加在原标记上出现重影。 经检查证实出现问题时 data 中的 markers 数据并不存在冗余;并且,使用相同代码在旧版本微信中不会出现该问题。 问题示例截图: [图片]
2017-10-14 - 小程序wx.request收到格式错误的json,解析出错时没有友好错误提示
今天碰到一个小bug,debug却花了两个多小时。 原因是服务端拿过来的json里面,有一个字符串是直接从sql取的,里面有个回车没有转义成标准json格式的\n,而是一个特殊字符(\u2028)。这个测试字符串用了半年,app端甚至小程序开发者工具都没报错,可以正常解析成回车,但是iOS端导致脚本停止执行,页面元素丢失,只剩两条错误信息: [图片] 看到日志就蒙了,因为请求日志没打出来,而且只有iOS端有这种问题(安卓没试过),地毯式排查了很长时间才发现是这个接口问题,本来以为是代码里引入了特殊字符,根本没想到是请求json格式问题…… 这个json本身格式也不规范,但是大多数平台都能成功解析,所以也希望小程序这边也能正常解析;如果觉得对json格式要求严格一些比较好,也希望这个错误能有友好一点的提示。 ## 复现 为了方便交流,临时开了一个测试接口,小程序iOS端调用即可复现: [代码]wx.request({ url: [代码][代码]'https://myseu.cn/test/wxapp-bug-test'[代码][代码], success: console.log })[代码]后端代码很简单: [代码]class[代码] [代码]WxappBugHandler(BaseHandler):[代码][代码] [代码][代码]def[代码] [代码]get([代码][代码]self[代码][代码]):[代码][代码] [代码][代码]self[代码][代码].write({[代码][代码]'test'[代码][代码]: [代码][代码]'\u2028'[代码][代码]})[代码]
2017-08-01