小程序概述

352 阅读3分钟

记录自己开发小程序中遇到的问题

小程序自定义头部 custom

在开发小程序的过程中,小程序官方给出的头部可能不满足开发需求,这个时候需要自定义的头部。

在 app.json 中定义 custom

  • 这里需要注意的是,自定义头部只能在 app.json 中,小程序暂时还没有满足对单个模块进行自定义的头部。
"window": {
    "navigationStyle": "custom"
}

自定义 custom 组件,方便管理

<custom />

小程序页面跳转时传递一个对象

小程序页面之间的跳转可以进行一些参数的传递

wx.navitgatTo({
  url : “../home/home?name=hehe”
})

当传递一个对象时,是需要将对象转成字符串的

var obj = JSON.stringify(obj)
wx.navitgatTo({
  url : “../home/home?name=” +obj
})

然后在相应页面接收

onLoad(options){
  var details = JSON.parse(options);
  console.log(details)
}

结果: 报错了

解决: 使用 encodeURIComponentdecodeURIComponent

var obj = JSON.stringify(obj)
wx.navitgatTo({
  url : “../home/home?name=” + encodeURIComponent(obj)
})
onLoad(options){
  var details = decodeURIComponent(options.name)
  details = JSON.parse(details)
}

二.左上角返回按钮如何自定义跳转

使用wx.navitgatTo跳转后可以观察到左上角有一个返回按钮,会返回上一个页面。但是有些时候我们并不想让他回到上一个页面,这样该怎么处理呢?

思路是: 在小程序销毁时,进行一个wx.reLaunch(关闭所有页面,打开到应用内的某个页面),这样的话点击返回时会跳到相应的页面。

//  相应的页面
 onUnload: function () {
      wx.reLaunch({
          url: '../logs/logs'
      })
  }

小程序的登陆流程

一个完成的登陆流程分一下几步

  • wx.login 获取登录凭证 code
  • 用 code 去后台换取用户登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session_key)等
  • 拿到开发者服务器传回来的会话密钥(session_key)之后,前端要保存 wx.setStorageSync('sessionKey', 'value')
  • 通过 getPhoneNumber 获取 encryptedData,iv
  • 通过参数 encryptedData,iv,sessionKey 请求后台解密获取用户手机号

小程序的登陆

  • 在 wx.getUserInfo 可以获取头像昵称,但是需要授权。使用 button 的话会弹出官方自带的弹窗授权
  • 在获取手机号码的时候也需要授权,使用 button 的话会弹出官方自带的弹窗授权,不需要自己定义

小程序拉起 app

小程序支持拉起 App,但是有个前提,这个小程序必须是由 App 分享打开的。

  • 在微信登陆微信开发平台,是的小程序于 app 绑定
  • 配置中需要的 appid,必须是原始 id
  • App 可以分享小程序,移动端配置一堆
  • 小程序拉起 App,移动端配置一堆
  • 移动端可以设置开发版,体验版,正式版

小程序的发版

小程序可以发体验版和开发版

小程序上传代码后可以发体验版,这个时候可以测试拉起 app,开发版不行

小程序下载 app

小程序不支持下载 app,如果产品上线到了应用宝则可以打开应用宝,但是 IOS 用户的话不能。所以说小程序下载 app 安卓和 IOS 不能同时兼容。可以可以参考一下做法:

  • 使用 button 打开微信小程序客服
  • 微信小程序客服提供下载链接
  • 这里说明一下,微信小程序客服由后端配置自动回复

小程序的上线

上传代码后,可以提交审核,审核通过即为上线。