微信小程式太陽碼傳入引數解析
阿新 • • 發佈:2021-01-05
技術標籤:小程式javascript
通過二維碼進入小程式的時候,可以在 onload 函式裡面獲取引數。
onLoad(options) {
console.log(options)
}
這個是打印出來的結果。所以,在這裡我們需要用到的是 options.scene。
第一步,使用 decodeURIComponent 解析一下,就可以得到傳入的引數。
post_id=74413&category_id=360
但這是字串,不方便後面的取值、存值。
第二步,可以將 options.scene 裡面的普通字串拼接修改成 json 字串,再使用 JSON.parse 轉換成物件。
這樣就變成方便操作的資料了。
合起來就是: 在需要獲取引數的地方,呼叫函式 this.sceneToObj() 就可以了
onLoad(options) {
if (options.scene) { // 掃碼進來
let query = this.sceneToObj(options.scene)
this.setData({
postID: query.post_id || '',
categoryID: query.category_id || ''
})
}
},
sceneToObj(str) {
const scene = decodeURIComponent(str)
let str1 = scene.replace(/=/g, '":')
let str2 = str1.replace(/&/g, ',"')
let obj = JSON.parse('{"' + str2 + '}')
return obj
}