小程序产品设计中的坑
资质
不是所有功能可以做,根据不同主体,会有不同的开放类目,主体分为「非个人主体」「个人主体」「海外主体」。有些类目需要有资质,比如社交类(包括社区、笔记等),都要 ICP 证。如果做了功能提交审核,发现的话会被拒绝,要求添加相关分类。
官方文档:开放的服务类目
对策:做服务端开关,审核时把功能隐藏(暂时貌似没有程序静态检查,只有人工审核),审核后再打开,但要承担被下架的风险。
虚拟支付
18 年 5 月,由于苹果公司要求,iOS 的小程序虚拟商品支付被禁止,即内容付费、工具服务类等,不包括外卖、电商这些。如果被发现,会屏蔽支付接口。
对策:加入实体商品的性质,比如购买课程变成购买课程+书,加入收货地址等信息。
模版消息推送
可以给用户推送模版消息,会在「服务通知」里提醒,对留存比较有帮助(唤起用户)。有次数和时间限制,两种方式可以获得下发次数:
1. 支付。每次支付有 3 条下发次数,可以在 7 天内推送
2. 提交表单。每次提交有 1 条下发次数,可以在 7 天内推送
官方文档:模版消息
大部分小程序都没有支付,主要靠提交表单,即需要用 <form/> 组件,让用户手动触发确认。常见做法,会把 <form/> 伪装成一个列表项、某个按钮等,用户在使用过程中就获得了下发次数,但有违规风险。
Tab bar 的 action button
有的产品想要在 tab bar 加上 action button,比如发布内容、新建文章等。但小程序原生 tab bar 目前不支持跳转新页面,只支持在当前打开页面。而如果自己实现 tab bar,性能会很差(切换 tab 时卡顿、页面闪烁)。
有种做法,依然用原生 tab bar,但把 icon 素材做成 action button 的样式,然后在当前打开页面,列出一些选项让用户选择,再进入子页面。
比如可以参考「美篇」的开始创作,先让用户选择文字、图片、视频,然后再进入文章编辑的子页面。
自定义导航栏
例如「知乎热榜」小程序,搜索框在导航栏。
怎么做到的?其实是微信版本 6.6.0 后支持的特性,navigationStyle 可以设置为 custom,设置后顶栏就消失了,页面会自动顶到最顶部。所以「知乎热榜」那个搜索栏不是属于顶栏,而是属于页面内容,这下就好理解了。
官方文档:全局配置 - window
Webview
小程序中可以使用 webview 组件,直接把 mobile web 套到小程序里,比如「多抓鱼」就是以 webview 为主的。
好处:
1. 节省工作量,已有的 mobile web 不用重复开发。
2. 不需要等审核,随时部署更新。
3. 直接兼容一些小程序不支持的原生标签,比如 <pre/>。
坏处:
1. 一个页面里只能有一个 <webview/> 组件,不能有其它。比如想用原生的 <button/> 来调起支付、分享,就不可以。
2. 只有绑定为业务域名的 url 才能跳转,不可以随便打开什么网页,上限 20 个。
其它杂七杂八
1. 绑定的服务器域名,需要国内 ICP 备案,所以想做个 dribbble 客户端,直接利用 dribbble API 是不行的,只能想办法用自己服务器做数据转发。
2. 小程序之间可以互相跳转,但必须绑定在同一公众号下,而且具体跳转的是哪个小程序、哪个页面,要手动配置小程序 AppID 和路径。
3. 不能长按别二维码,也没办法下载 app。
4. 如果需要绑定手机号,可以使用小程序的获取手机号接口,调的是微信绑定了的手机号,很方便。
更新于 18 年 9 月