小程序学习笔记 开发须知

Posted by fsoooo Blog on April 10, 2018

一、小程序开发须知

  • App() 必须在 app.js 中注册,且不能注册多个。
  • 编译后的代码包大小需小于 1MB,否则代码包将上传失败。
  • 每个页面需要手动在app.json中进行注册,否则不能访问。
  • app.json中pages数组的第一项代表小程序的初始页面,小程序中新增/减少页面,都需要对 pages 数组进行修改。
  • 直接修改 this.data 无效,无法改变页面的状态,还会造成数据不一致。
  • 单次设置的数据不能超过1024kB,请尽量避免一次设置过多的数据
  • 不要尝试修改页面栈,会导致路由以及页面状态错误。
  • tabBar只能配置最少2个、最多5个,tab 按数组的顺序排序。
  • 小程序页面只能同时打开 5 个,如果交互流程较长难以支持。
  • 同时只能存在 5 个url请求。
  • 无法跳转小程序以外的url。
  • 没有cookie。
  • 没有开放加载web页面。

App() 小程序生命周期

//app.js
App({
  onLaunch: function() { 
      //小程序初始化(全局只触发一次)
  },
  onShow: function() {
      //小程序显示
  },
  onHide: function() {
      //小程序隐藏
  },
  onError: function(msg) {
      //小程序错误
  },
})
//其他 开发者可以添加任意的函数或数据到 Object 参数中,用 this 可以访问
状态 说明 备注
前台 点击左上角关闭,或者按了设备 Home 键离开微信 小程序并没有直接销毁,而是进入了后台
后台 再次进入微信或再次打开小程序,从后台进入前台  
销毁 小程序进入后台一定时间,或者系统资源占用过高 真正的销毁

Page 页面生命周期

//index.js
Page({
  onLoad: function(options) {
    //页面加载-----(一个页面只会调用一次)
  },
  onReady: function() {
    //页面渲染-----(一个页面只会调用一次)
  },
  onShow: function() {
    //页面显示-----(每次打开页面都会调用一次)
  },
  onHide: function() {
    //页面隐藏-----(当navigateTo或底部tab切换时调用)
  },
  onUnload: function() {
    //页面卸载-----(当redirectTo或navigateBack的时候调用)
  },
})
//其他 开发者可以添加任意的函数或数据到 object 参数中,在页面的函数中用 this 可以访问

二、小程序限制

颜色限制

  1. windows navigationBarTextStyle 导航栏标题颜色,仅支持 black/white
  2. windows backgroundTextStyle 下拉背景字体、loading图的样式,仅支持 dark/light
  3. tabBar borderStyle 上边框的颜色, 仅支持 black/white

程序限制

  1. 脚本内不能使用window等对象
  2. zepto/jquery 会使用到window对象和document对象,所以无法使用。
  3. 样式表不支持级联选择器
  4. 本地资源无法通过 css 获取 background-image可以使用网络图片,或者 base64,或者使用标签
  5. 不支持 A 标签,无法打开普通网页

数量限制

  1. 底部或顶部可以添加tab按钮区域 tabBar 是一个数组,只能配置最少2个、最多5个 tab,tab按数组的顺序排序。
  2. 一个应用同时只能打开5个页面

大小限制

  1. tabBar 上面的按钮 iconPath 图片路径,icon 大小限制为40kb
  2. tabBar 上面的按钮 selectedIconPath 选中时的图片路径,icon 大小限制为40kb
  3. setData 页面传递数据单次设置的数据不能超过1024kB
  4. setStorage 本地缓存最大为10MB
  5. 小程序源码打包后的大小限制为1M

消息限制

  1. 支付当用户在小程序内完成过支付行为,可允许开发者向用户在7天内推送有限条数的模板消息(1次支付可下发1条,多次支付下发条数独立,互相不影响)
  2. 提交表单 当用户在小程序内发生过提交表单行为且该表单声明为要发模板消息的,开发者需要向用户提供服务时,可允许开发者向用户在7天内推送有限条数的模板消息(1次提交表单可下发1条,多次提交下发条数独立,相互不影响)

三、小程序审核

标题

  1. 标题不能存在相同
  2. 标题意思不能存在过度相似
  3. 标题必须以“提醒”或“通知”结尾
  4. 标题不能带特殊符号、个性化字词等没有行业通用性的内容
  5. 标题必须能体现具体服务场景
  6. 标题不能涉及营销相关内容,包括不限于:消费优惠类、购物返利类、商品更新类、优惠券类、代金券类、红包类、会员卡类、积分类、活动类等营销倾向通知

关键词

  1. 同一标题下,关键词不能存在相同
  2. 同一标题下,关键词不能存在过度相似
  3. 关键词不能带特殊符号、个性化字词等没有行业通用性的内容
  4. 关键词内容示例必须与关键词对应匹配
  5. 关键词不能太过宽泛,需要具有限制性,例如:“内容”这个就太宽泛,不能审核通过

违规说明

除不能违反运营规范外,还不能违反以下规则,包括但不限于:

  1. 不允许恶意诱导用户进行触发操作,以达到可向用户下发模板目的
  2. 不允许恶意骚扰,下发对用户造成骚扰的模板
  3. 不允许恶意营销,下发营销目的模板
  4. 不允许通过服务号下发模板来告知用户在小程序内触发的服务相关内容

处罚说明

处罚结果及原因以站内信形式告知 根据违规情况给予相应梯度的处罚,一般处罚规则如下:

  1. 第一次违规,删除违规模板以示警告,
  2. 第二次违规,封禁接口7天,
  3. 第三次违规,封禁接口30天,
  4. 第四次违规,永久封禁接口