记录自己开发小程序中遇到的问题
小程序自定义头部 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)
}
结果: 报错了
解决: 使用 encodeURIComponent 和 decodeURIComponent
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 打开微信小程序客服
- 微信小程序客服提供下载链接
- 这里说明一下,微信小程序客服由后端配置自动回复
小程序的上线
上传代码后,可以提交审核,审核通过即为上线。