A 跳轉(zhuǎn)到 B 時(shí),可以通過(guò) url 中 query 傳遞數(shù)據(jù)。 B 頁(yè)面 onLoad(options) 方法中的 options 會(huì)包含 query 中的 key-value 的內(nèi)容。 如果需要傳遞如 json 或數(shù)組這樣的結(jié)構(gòu)化數(shù)據(jù),我們也可以先把結(jié)構(gòu)化數(shù)據(jù)做 string 化后再 encode 一下后,再通過(guò)該方式傳遞。 encodeURIComponent(JSON.stringify(xxx)) 在 B 頁(yè)面中,獲得內(nèi)容后,通過(guò)以下方法,解析出數(shù)據(jù)。 JSON.parse(decodeURIComponent(xxx)) 第二問(wèn):頁(yè)面間如何回傳數(shù)據(jù)?比如 A 打開了 B,B 中一些數(shù)據(jù)需要傳送到 A??梢韵全@取前一個(gè)頁(yè)面實(shí)例,然后直接調(diào)用前一個(gè)頁(yè)面數(shù)據(jù)進(jìn)行數(shù)據(jù)傳輸。 const pages = getCurrentPages(); const prevPage = pages[pages.length - 2]; prevPage.methodOfPrevPage(data); 第三問(wèn):小程序如何與服務(wù)端保持會(huì)話?因小程序框架并無(wú) Cookie 管理機(jī)制,并且小程序也未提供向 WebView 設(shè)置 Cookie 的方法。所以如果我們想繼續(xù)使用 Session-Cookie 機(jī)制,則需要自己實(shí)現(xiàn)一套,我們可以簡(jiǎn)單的提取出 set-cookie 頭中有效的 cookie 內(nèi)容,然后存儲(chǔ)在內(nèi)存和本地中,再下一次請(qǐng)求的時(shí)候,把這些 cookie 組裝起來(lái)使用。當(dāng)涉及到 WebView 時(shí),我們可以通過(guò) query 的方法,把這些 Cookie 內(nèi)容傳給 Web 端,用來(lái)維持和服務(wù)端的有效會(huì)話。 當(dāng)然你也可以采用 Token 機(jī)制,與服務(wù)端保持會(huì)話。 第四問(wèn):如何調(diào)用子組件中的方法?我們可以在自定義組件中加上一個(gè) id,然后在 js 代碼中使用如下方法: this.selectComponent('#id').methodOfComponent(data); 第五問(wèn):子組件中如何調(diào)用父組件的方法?使用組件事件方法,詳細(xì)文檔: developers.weixin.qq.com/miniprogram… 在父組件中使用子組件時(shí),可以定義一個(gè) bind:customMethod='parentMethod' 然后子組件中,可以使用以下代碼調(diào)用父類的方法 this.triggerEvent('customMethod', data); 第六問(wèn):小程序如何進(jìn)行數(shù)據(jù)分析?小程序后臺(tái)提供了數(shù)據(jù)分析能力,具體可見: developers.weixin.qq.com/miniprogram… 并且如果需要把數(shù)據(jù)接入到自己的服務(wù)中,也可以通過(guò)調(diào)用微信接口的方式拿到數(shù)據(jù): developers.weixin.qq.com/miniprogram… 如果需要自定義數(shù)據(jù),我們可以在小程序中調(diào)用方法: wx.reportAnalytics(eventName, data) 不過(guò)在使用前,需要在小程序管理后臺(tái)自定義分析中新建事件,配置好事件名與字段。另外自定義事件的數(shù)據(jù)無(wú)法通過(guò)接口獲得, 所以如果你需要在自己的服務(wù)器上也分享自定義事件,那只能自己開發(fā)幾個(gè)接口了。 第七問(wèn):微信小程序的二維碼生成有次數(shù)限制嗎?微信提供了三種方式生成微信二維碼,詳情可查看: developers.weixin.qq.com/miniprogram… 此三種類型二維碼都需要服務(wù)端端通過(guò) access_token 調(diào)用微信接口生成。并且僅能生成已發(fā)布的小程序的二維碼,所以你的小程序先得上線后才能測(cè)試該功能。有點(diǎn)坑。 其中接口A、和接口C有次數(shù)限制,接口A加上接口C,總共生成的碼數(shù)量限制為100,000。 接口 B 次數(shù)無(wú)限制,但調(diào)用頻率有限制,5000次/分鐘。 接口 A 和接口 C 相對(duì)接口 C 可以傳入一個(gè)最大長(zhǎng)度不超過(guò) 128 字節(jié)的 path,你可以在 path 中通過(guò) query 的形式傳入?yún)?shù)。 接口 B 相對(duì) A、C,把 PATH 拆成了,page 和 scene,其中 scene 最大為 32 個(gè)字符??梢栽?page 的 onLoad 方法中通過(guò) options.scene 方式獲得這個(gè) scene。 第八問(wèn):普通二維碼可以打開小程序嗎?可以,需要在小程序管理后臺(tái)添加,添加后,即可掃描以下內(nèi)容的二維碼就可跳轉(zhuǎn)到小程序的指定頁(yè)面了。 詳情可查看: developers.weixin.qq.com/miniprogram… 第九問(wèn):小程序版本的兼容情況如何?小程序運(yùn)行在微信上,并且小程序的基礎(chǔ)庫(kù)隨微信版本而發(fā)版。所以不同的微信版本會(huì)對(duì)小程序的表現(xiàn)有所影響。 有關(guān)各個(gè)版本的基礎(chǔ)庫(kù)的覆蓋率可以查看以下鏈接。 developers.weixin.qq.com/miniprogram… 目前微信推薦的最低基礎(chǔ)庫(kù)版本,可以覆蓋 80% 以上的微信用戶。另外低版本的微信在使用使用高基礎(chǔ)庫(kù)版本的小程序會(huì)提示升級(jí)微信。 第十問(wèn):小程序代碼可以運(yùn)行在瀏覽器中嗎?小程序使用的是自己的一套框架,只是借用了目前主流的 html + js + css 的開發(fā)形式,所以小程序代碼本身是無(wú)法直接運(yùn)行在瀏覽器中的。 目前美團(tuán)開源了一套自己的方案: github.com/Meituan-Dia… ,使用 vue 的形式來(lái)編寫小程序。并且可以通過(guò)改變打包配置的方式,讓同一套代碼可以同時(shí)運(yùn)行在小程序和瀏覽器中。 最近在公司做了幾款小程序,對(duì)小程序開發(fā)有了一些經(jīng)驗(yàn),如果你對(duì)小程序開發(fā)有更多疑問(wèn) |