扫描二维码进入小程序超详细过程
項(xiàng)目場(chǎng)景:
提示:這里簡(jiǎn)述項(xiàng)目相關(guān)背景:二維碼中的參數(shù)是文章的id。在微信公眾號(hào)相關(guān)的配置在這就不說(shuō)明了。
假設(shè)配置完成域名為:http://xiaobai.com?id=${id}。
下面主要講述小程序方面的代碼編寫。
需求: 通過(guò)掃描二維碼進(jìn)入小程序的文章詳情detail頁(yè)面,首先判斷用戶之前是否登錄過(guò)小程序,如果沒(méi)有登錄過(guò)則跳到登錄login頁(yè)面進(jìn)行登錄,登錄成功后返回到文章詳情detail頁(yè)面;如果已經(jīng)登錄則直接通過(guò)接口查看文章詳情。
問(wèn)題分析:
一、當(dāng)我們掃碼二維碼進(jìn)入文章詳情頁(yè)面時(shí),假設(shè)用戶沒(méi)有登錄,跳轉(zhuǎn)到登錄login頁(yè)面,登錄成功后需要判斷跳轉(zhuǎn)到程序首頁(yè)還是文章詳情頁(yè)面
二、登錄成功后再次返回文章詳情頁(yè)面時(shí),在onload函數(shù)中獲取不到之前掃碼進(jìn)入小程序的參數(shù)文章id
解決方案:
在跳轉(zhuǎn)登錄頁(yè)面時(shí),將參數(shù)id存入緩存,給登錄login頁(yè)面?zhèn)鬟f一個(gè)標(biāo)識(shí)flag,表示我們是從文章詳情進(jìn)入,登錄成功后還需要返回到文章詳情
文章詳情頁(yè)面detail.js
onLoad: function (options) {// 通過(guò)獲取 token 判斷用戶是否登錄過(guò)小程序let token = wx.getStorageSync('Token')let id = token && wx.getStorageSync('id') // id存在說(shuō)明是從掃描二維碼進(jìn)入,但用戶沒(méi)有登錄if(id){// 將緩存中的 文章id 清除wx.removeStorageSync('id')//TODO 在這里調(diào)獲取文章詳情的接口}else{ // 說(shuō)明掃碼進(jìn)入// url為配置的域名, 通過(guò)字符串切割的方法獲取參數(shù)idlet url = decodeURIComponent(options.q)let id = url.split('=')[1]// 說(shuō)明登錄過(guò)小程序if(token){//TODO 在這里調(diào)獲取文章詳情的接口}else{// 說(shuō)明沒(méi)有登錄過(guò)小程序// 將參數(shù)id放進(jìn)緩存,等登錄成功返回此頁(yè)面時(shí)用來(lái)獲取文章詳情wx.setStorageSync('id',id)wx.navigateTo({url: '/pages/login/login?flag=1',})}}},登錄頁(yè)面login.js
Page({data: {ifFlag:false, // 判斷是否從文章詳情頁(yè)面進(jìn)入},onLoad: function (options) {// 獲取flag標(biāo)識(shí)const flag = options.flag ? true : falsethis.setData({flag})}// 登錄函數(shù)submit(){// TODO 登錄成功后我們只需要判斷flagif(flag) // 跳到文章詳情頁(yè)面else // 正常跳到程序首頁(yè)} })總結(jié)
總結(jié)
以上是生活随笔為你收集整理的扫描二维码进入小程序超详细过程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: POJ - 3311 Hie with
- 下一篇: win系统的VBS脚本简易教程