小程序開發(fā)者工具是對微信客戶端的模擬,受限于桌面設(shè)備同移動設(shè)備的差異,以及微信的一些特有數(shù)據(jù),同時考慮到開發(fā)的便捷性,部分 API 在工具和微信中有所不同。
# 掃碼接口
同手機端直接調(diào)用攝像頭來掃碼不同,在 PC 或者 Mac 上調(diào)用攝像頭來掃碼完成調(diào)試是一個低效的行為,所以在開發(fā)工具上調(diào)用二維碼掃碼 API 后,開發(fā)者可以選擇一個本地的圖片來進行后續(xù)的邏輯調(diào)試,而不是真正的啟用攝像頭來掃碼,流程有所不同,但是接口的輸入和輸出是一致的。
# 微信支付
最新版本的開發(fā)者工具已經(jīng)支持微信支付的調(diào)試,但是為了兼顧到安全,同手機上直接調(diào)用微信支付有所不同:
- 新綁定的開發(fā)者需要 24 小時后才有權(quán)限進行微信支付的調(diào)試
- 開發(fā)者在工具上調(diào)用微信支付的 API 后,開發(fā)工具會出現(xiàn)一個二維碼,開發(fā)者必須使用當(dāng)前開發(fā)所使用的微信號掃碼后在手機上完成支付的流程
- 工具會同步移動端微信支付的回包到工具中,開發(fā)者自行進行后續(xù)的操作
使用的交互有所不同,但是接口的輸入輸出工具同客戶端是保持一致的。
# 啟動使用自定義參數(shù)
在日常使用中,用戶可以通過掃碼、分享打開一個小程序,這時候會依據(jù)設(shè)置的啟動頁面:path 跳轉(zhuǎn)到對應(yīng)的小程序頁面(不一定是首頁)并且可以攜帶參數(shù):query。在開發(fā)者工具中,開發(fā)者同樣可以通過自定義編譯條件的方式來達到調(diào)試不同啟動頁面和啟動參數(shù)的目的。
例如下圖是選擇進入頁面是 page/API/index,參數(shù) 是 name=can

# 進入場景值
在微信客戶端中,用戶可能在各個場景下打開小程序 詳情 ,然而在開發(fā)者工具中是沒有真實的環(huán)境去模擬這些場景的。開發(fā)者可以通過條件編譯的方式來達到調(diào)試不同場景的目的。

# 普通的轉(zhuǎn)發(fā)
開發(fā)者工具上調(diào)用轉(zhuǎn)發(fā)是一個模擬的行為,并不會真實的轉(zhuǎn)發(fā)給用戶,開發(fā)可以通過這個模擬行為判斷是否正確的調(diào)用了轉(zhuǎn)發(fā) API。
# 帶群信息的轉(zhuǎn)發(fā)
在開發(fā)者工具調(diào)試 wx.getGroupEnterInfo 接口,需要設(shè)置當(dāng)前小程序的場景值為群聊的場景即可,如 1158 群工具打開小程序 的場景值。
可在開發(fā)者工具新增編譯模式,設(shè)置進入的場景值為群聊的場景值如 1158,以及選擇模擬進入的群。使用該模式加載進入小程序,即可調(diào)試調(diào)用 wx.getGroupEnterInfo 接口。

# 示例代碼
wx.getGroupEnterInfo({
success: (result) => {
console.log('success', result)
},
fail: (result) => {
console.log('fail', result)
},
})
# 帶 shareTicket 的轉(zhuǎn)發(fā)
帶 shareTicket 的轉(zhuǎn)發(fā)可以獲取到更多的轉(zhuǎn)發(fā)信息,例如群聊的名稱以及群的標(biāo)識 openGId。在小程序開發(fā)者工具上,開發(fā)者可以通過以下方式來調(diào)試帶 shareTicket 的轉(zhuǎn)發(fā)。
調(diào)用 wx.showShareMenu 的參數(shù) withShareTicket 為 true 時,點擊模擬器右上角菜單后出現(xiàn)的轉(zhuǎn)發(fā)按鈕,會出現(xiàn)一個測試群列表,如圖:

開發(fā)者點擊選取任何一個群,可以通過接口的回包獲取到 shareTicket ,通過調(diào)用 wx.getShareInfo 可以獲取到相關(guān)轉(zhuǎn)發(fā)的信息
當(dāng)開發(fā)者需要調(diào)試從某一個群點開,并且?guī)в?shareTicket 的場景時,可以使用自定義編譯中的 1044:群聊會話中的小程序消息卡片(帶 shareTicket) 同時可以選擇任一模擬測試群,如圖

# 預(yù)覽使用自定義編譯條件
同 啟動使用自定義參數(shù) 相同,提交預(yù)覽時,開發(fā)者可以通過自定義預(yù)覽的方式來達到在移動設(shè)備上調(diào)試不同啟動頁面和啟動參數(shù) 的目的。我們可以選擇已經(jīng)創(chuàng)建好的自定義編譯條件進行預(yù)覽。
# 跳轉(zhuǎn)小程序調(diào)試支持
小程序跳轉(zhuǎn)開發(fā)調(diào)試可以分為兩個部分
# 調(diào)試小程序是否能夠正確的跳轉(zhuǎn)
出于小程序代碼的安全考慮,在工具上調(diào)用 wx.navigateToMiniProgram 的時候,開發(fā)者工具不會真實的打開和跳轉(zhuǎn)到另外的小程序,但是工具會判斷當(dāng)前小程序與需要跳轉(zhuǎn)的小程序之間的綁定關(guān)系,輸出相關(guān)信息給到開發(fā)者。開發(fā)者可以根據(jù)成功或者失敗的回調(diào)函數(shù)來判斷調(diào)用是否成功。
# 調(diào)試被打開的小程序時候正確的接收參數(shù)
選擇 自定義編譯 進入場景選擇 1037 從小程序進入 可以調(diào)試小程序被打開時候是否接收到了正確的參數(shù)并做了相關(guān)處理。

選擇 自定義編譯 進入場景選擇 1038 從小程序返回 可以調(diào)試小程序返回時候是否接收到了正確的參數(shù)并做了相關(guān)處理。

# 小程序鏈接相關(guān)的調(diào)試處理
小程序鏈接包含 URL Scheme、URL Link、Short Link。要調(diào)試點擊了這些鏈接進入小程序的情況或者調(diào)試鏈接本身攜帶的路徑、參數(shù)是否正確,可以按如下方法調(diào)試。
添加編譯模式的時候,可以選擇 添加方式,可以選擇解析「URL Scheme」、「URL Link」、「Short Link」或者小程序二維碼

解析具體的小程序鏈接可以獲得鏈接所包含的具體的頁面路徑和參數(shù),同時也會自動填上相應(yīng)的場景值供開發(fā)者調(diào)試。 注意,填入的鏈接指向的小程序appid需要和當(dāng)前開發(fā)調(diào)試的小程序appid一致,否則會解析失敗。

# 聊天工具調(diào)試
最新版本的開發(fā)者工具已經(jīng)支持聊天工具的調(diào)試,具體方式為選擇聊天工具的頁面之后選擇聊天工具的小程序模式
