十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
在小程序/小游戲中使用網(wǎng)絡相關的 API 時,需要注意下列問題,請開發(fā)者提前了解。

創(chuàng)新互聯(lián)公司歡迎聯(lián)系:18980820575,為您提供成都網(wǎng)站建設網(wǎng)頁設計及定制高端網(wǎng)站建設服務,創(chuàng)新互聯(lián)公司網(wǎng)頁制作領域十載,包括混凝土攪拌罐車等多個方面擁有豐富的網(wǎng)站維護經(jīng)驗,選擇創(chuàng)新互聯(lián)公司,為企業(yè)錦上添花。
每個微信小程序需要事先設置通訊域名,小程序只可以跟指定的域名進行網(wǎng)絡通信。包括普通 HTTPS 請求(wx.request)、上傳文件(wx.uploadFile)、下載文件( wx.downloadFile) 和 WebSocket 通信(wx.connectSocket)。
從基礎庫 2.4.0 開始,網(wǎng)絡接口允許與局域網(wǎng) IP 通信,但要注意 不允許與本機 IP 通信。
從 2.7.0 開始,提供了 UDP 通信(wx.createUDPSocket)。
服務器域名請在 「小程序后臺-開發(fā)-開發(fā)設置-服務器域名」 中進行配置,配置時需要注意:
小程序必須使用 HTTPS/WSS 發(fā)起網(wǎng)絡請求。請求時系統(tǒng)會對服務器域名使用的 HTTPS 證書進行校驗,如果校驗失敗,則請求不能成功發(fā)起。由于系統(tǒng)限制,不同平臺對于證書要求的嚴格程度不同。為了保證小程序的兼容性,建議開發(fā)者按照最高標準進行證書配置,并使用相關工具檢查現(xiàn)有證書是否符合要求。
對證書要求如下:
證書有效性可以使用 openssl s_client -connect example.com:443 命令驗證,也可以使用其他在線工具。
除了網(wǎng)絡請求 API 外,小程序中其他 HTTPS 請求如果出現(xiàn)異常,也請按上述流程進行檢查。如 https 的圖片無法加載、音視頻無法播放等。
在微信開發(fā)者工具中,可以臨時開啟 開發(fā)環(huán)境不校驗請求域名、TLS版本及HTTPS證書 選項,跳過服務器域名的校驗。此時,在微信開發(fā)者工具中及手機開啟調(diào)試模式時,不會進行服務器域名的校驗。
在服務器域名配置成功后,建議開發(fā)者關閉此選項進行開發(fā),并在各平臺下進行測試,以確認服務器域名配置正確。
如果手機上出現(xiàn) “打開調(diào)試模式可以發(fā)出請求,關閉調(diào)試模式無法發(fā)出請求” 的現(xiàn)象,請確認是否跳過了域名校驗,并確認服務器域名和證書配置是否正確。
基礎庫 2.4.0 提供了 wx.startLocalServiceDiscovery 等一系列 mDNS API,可以用來獲取局域網(wǎng)內(nèi)提供 mDNS 服務的設備的 IP。 wx.request/wx.connectSocket/wx.uploadFile/wx.downloadFile 的 url 參數(shù)允許為 ${IP}:${PORT}/${PATH} 的格式,當且僅當 IP 與手機 IP 處在同一網(wǎng)段且不與本機 IP 相同(一般來說,就是同一局域網(wǎng),如連接在同一個 wifi 下)時,請求/連接才會成功。
在這種情況下,不會進行安全域的校驗,不要求必須使用 https/wss,也可以使用 http/ws。
wx.request({
url: 'http://10.9.176.40:828'
// 省略其他參數(shù)
})
wx.connectSocket({
url: 'ws://10.9.176.42:828'
// 省略其他參數(shù)
})
基礎庫 2.7.0 開始,提供了 wx.createUDPSocket 接口用于進行 UDP 通信。通信規(guī)則同上,僅允許同一局域網(wǎng)下的非本機 IP。
目前小程序只支持通過 mDNS 協(xié)議獲取局域網(wǎng)內(nèi)其他設備的 IP。iOS 上 mDNS API 的實現(xiàn)基于 Bonjour,Android 上則是基于 Android 系統(tǒng)接口。
serviceType
發(fā)起 mDNS 服務搜索 wx.startLocalServiceDiscovery 的接口有 serviceType 參數(shù),指定要搜索的服務類型。
serviceType 的格式和規(guī)范,iOS Bonjour Overview 在 Bonjour Names for Existing Service Types 有提及。
Android 文檔 對此也有提及。