『壹』 微信小程序給webview傳個參數
你從上個頁面祥雹來到webView的時候將id參數傳到webView當前頁辯激面,也或者你直接將帶id參數的url拼接好傳過來,然後webView頁面在onload裡面獲取參數,如果只傳id,那麼就通過options.id獲取到傳過來的id然後拼接url,再setData,攜宴襪如果直接傳拼接過來的url,那麼就直接options.url 再setData就行了
『貳』 小程序頁面傳遞數據 、傳遞數組對象 小程序傳值
(1)使用本地緩存
(2)通過頁面路由
在使用url進行參數傳遞時候,傳遞數據有位元組限制,如果要傳遞對象,需要先把對象通過JSON.stringify轉換成字元串,接收或再通過JSON.parse轉換成對象
demo
<template is="模板名" data="數據對象" />
A頁面跳轉到B頁面
頁面傳值
微信小程序 頁面傳值詳解
一. 跨頁面傳值.
1 . 用 navigator標簽傳值或 wx.navigator, 比如
這里將good_id=16 參數傳入detail頁面, 然後detail頁面的 onload方法內接受.
如果需要傳多個參數, 用橡老 & 鏈接即可
如果要傳 數組, 字典等復雜類型, 要先用 JSON.stringify() 轉成字元串傳遞.
注 : 如果轉化的字元串中 有"?"這個符號, 則只會傳遞"?"以前的字元串, 這個問題我猜想可能是小程序內部的路由處理 對這個"?"敏感吧
好, 這是第一種 依靠跳轉的url帶參數傳值
2 . 用getCurrentPages(); 獲取棧中全部頁面的, 然後把數據寫入相應頁面
這里可以傳字元串, 也能傳數組等,
這樣就把 address 傳遞並接受了
注 : 這個方法適合 往後面傳值(即已經存在的頁面), 這樣才能在棧中找到並主動寫入數據, 且 一定要在 onshow() 方法中接受, 因為再次返回只執行onshow()方法梁知升.
3 . 寫入本地, 跨頁面在取出來 wx.setStorage/wx.getStorage等, 小程序中對寫入本地數據猛岩 封裝了很多方法, 各有側重, 這里就不多說了
4 . 把 數據聲明為全局變數
var detail = getApp().detail; 可在任何頁面獲取
二. 頁內傳值
1 . 設置id的方法標識跳轉後傳遞後的參數
在bindtap定義的點擊方法 swiperTap : function(e) ; 中獲取, var id = e.currentTarget.id;
2 . 設置 data-xxx 的方法來標識要傳遞的值
注 : 這里 data-index="{{index}}" 里的 {{index}} 是有效的, 在用wx-for 渲染視圖層時, index 代表點擊的下標. 在bindtap定義的點擊方法 swiperTap : function(e) ; 中獲取, 即 var index = e.currentTarget.dataset.index; 其他的參數取出也如此, var type = e.currentTarget.dataset.type;
3 . form表單和input輸入框
方法1:A頁面跳轉鏈接添加參數,B頁面onLoad 接收
方法2:設置全局變數 globalData,用的少,一般適用於全局共享的一份信息,如用戶open_id等