NiLinli / frontend-source-collection

前端资源收集
3 stars 2 forks source link

小程序爬坑 #1

Open NiLinli opened 4 years ago

NiLinli commented 4 years ago

记录微信小程序各种爬坑

NiLinli commented 4 years ago

微信小程序

setData 时候不要给字段赋值 undefined。

推测原因:JSON 格式数据 stringify 后, undefined 不会被保留。

页面加载时,data 将会以JSON字符串的形式由逻辑层传至渲染层,因此data中的数据必须是可以转成JSON的类型:字符串,数字,布尔值,对象,数组。

NiLinli commented 4 years ago

微信小程序

我小程序首页是 pages/index/index.js, 页面 pages/test/index.js 有如下代码:

function test() {
  console.log('test');
  return 3;
}

Page({
  data: {
    testValue: test()
  },
});

小程序在启动首页时候(并没有导航到 pages/test/index.js),会log "test"。

猜测: 小程序启动时候将所有引用的 Component 和 Page 中的 data 一次性初始化并缓存了, 之后每次进入页面都是取的最开始那个初始化的缓存值。

骚操作。。。

NiLinli commented 4 years ago

微信小程序

截止2020.9.22 Promise.prototype.finally IOS 部分不支持, 不可用, 😒

NiLinli commented 4 years ago

微信小程序

[BUG]安卓手机 input blur 时候, 会概率性的出现 placeholder 不消失和 value 值堆叠在一起

NiLinli commented 4 years ago

微信小程序

引用本地图片的时候, 开发工具不会区分图片路径的大小写
如果路径大小写写错了,开发工具依然可以显示出来
不便于排查错误

NiLinli commented 3 years ago

微信小程序

原生语法不要用 ES6 module 语法 虽然不会报错, 这点最坑,报错了别人就不会去使用了 但是引用顺序会发生改变 ,还可能会引发一些奇怪的 bug 官方也并没有明确文档解释模块化,循环引用等机制

NiLinli commented 3 years ago

微信小程序

hideLoading 时候会关闭 loading 和 误杀 toast

NiLinli commented 3 years ago

微信小程序

mobx-miniprogram-bindings 通过 binding 在绑定页面上的 store, 无法在 onLoad 钩子中获取 只能直接引用获取

NiLinli commented 3 years ago

微信小程序

调取拍照 api 拍照后, 回到页面 input 输入框内容消失 无法稳定复现 未找到原因

NiLinli commented 3 years ago

支付宝小程序

my.request

  1. 支付宝客户端已不再维护 my.httpRequest,替换成了 my.request 但是支付宝生态的其他小程序并没有替换,导致模拟器支持,初次开发不会引起警觉 并且 flyio 也未更新

  2. 设置 header 时候, 真机不支持 header 的 value 值为 number 类型, 模拟器支持 value 为 number 类型,文档也未提到,盲排查,纯靠猜(经验:任何平台,设置 value 时候都设置为 string 类型)

NiLinli commented 3 years ago

微信小程序

  1. 小程序页面图片含有二维码,点击预览/直接长按都无法识别,但是小程序二维码(菊花码)可以识别跳转。
  2. 小程序通过 webview 打开普通 H5 点击预览/直接长按都无法识别,但是 webview 打开公众号 H5 可以识别(不一定)。

总结

小程序无法识别图片中的普通二维码,大部分场景可以识别小程序二维码。

NiLinli commented 3 years ago

微信小程序/支付宝小程序

全局变量没有挂载到 global 上面去 导致 umd package 读取 global 上面的变量报错 需要主动添加 shim 把全局变量挂载上去,保证常见的 umd lib 可以正常使用

global.Object = Object;
global.Array = Array;
...
...
NiLinli commented 3 years ago

微信小程序

scroll view bindscroll 触发 callback, 官方默认设置了 throttle 快速滑动的时候,没有 trailing 尾调用触发,导致不能及时正确更新视图, 官方未暴露属性(截止2021/3/27)throttle, 设置为 false 可以关闭 throttle

<scroll-view  bindscroll="{{onSroll}}" throttle="{{false}}" >
</scroll-view>
NiLinli commented 3 years ago

微信小程序

不支持 eval