# yiki
# Q&A
- 小程序和 H5 有什么不一样,为什么选小程序而不是 H5
- 有考虑在小程序里嵌 H5 实现吗,为什么
- 为什么小程序的性能要好一些
- 小程序开发有用到哪些框架吗、为什么
- 小程序的特点
- 基于微信
# 个人
- 组件封装
- components + properties + observer+setdata + 选择器 + triggerevent
- ios和安卓差异
- 时间转换
- 布局错乱
- 根据wx的api判断当前系统然后分别写样式
- 缓存
- 缓存数据本地加密存储,通过 API 读取时会自动解密返回
- setStorageSync/getStorageSync/removeStorageSync/clearStorageSync
- 上传
- 二进流的方式
- 阿里云oss 获取阿里上传图片签名signature
- wx.uploadFile / wx.chooseImage / post wx.request({...})
- 成功会返回url
- 预览
- wx.downloadFile + openDocument
# 登录授权
当用户进入小程序的时候,如果我们要获取用户的头像和昵称,就需要向让用户授权。在以前微信小程序开发中,是可以用getUserInfo来获取,但是现在要通过getUserProfile来获取用户信息,详见小程序官方公告。 适配 wx.getSystemInfoSync()来获取型号,用正则匹配来修改样式。
# 状态管理
Mobx 本地存储 wx.setStorageSync('cookie', e.cookies[0]); 复制代码
小程序页面栈最多十层。 IOS 的 Date 构造函数不支持2018-04-26这种格式的日期,必须转换为2018/04/26这种格式 image组件使用webp图片时,IOS需要设置webp属性 Android手机在onShow内调用wx.showModal,如果不关闭弹窗(直接点击右上角退出小程序),弹窗不会销毁,再次进入页面触发onShow时会出现两次弹窗,IOS正常 小程序中使用web-view打开pdf, IOS 可以正常打开,Android 打开为空白
生成海报用的是
# 静默登录
- wx.getUserInfo会提醒授权
- [静默登录](https://juejin.cn/post/6945264484491460638)
- wx.login
- 后端通过微信接口OpenId + UnionId + sessionKey = auth-token给前端
- 这些东西存入本地
- 发请求携带请求头即可
- session_key 不是我们能决定的
# 埋点
- 单个队列