前言
小程序不能使用WebView一直是很大的痛點(diǎn),終于在11月3日,開通了WebView支持的能力,于是開始了我的爬坑之旅。
文檔
業(yè)務(wù)域名
在配置業(yè)務(wù)域名的時(shí)候,下載了校驗(yàn)文件,也放置在了網(wǎng)站根目錄,校驗(yàn)碼已經(jīng)可以訪問,但是審核驗(yàn)證一直不通,如下圖所示:

0.png

0.jpeg
通過各種方式測(cè)試,猜測(cè)其驗(yàn)證的內(nèi)部機(jī)制。
1. 通過域名訪問,獲取到服務(wù)器ip地址
2. 通過ip下載校驗(yàn)文件,比對(duì)校驗(yàn)
3. 提交業(yè)務(wù)域名
因此,如果通過rancher等動(dòng)態(tài)分配ip的docker化服務(wù)器,上述流程走不通的。
解決辦法:固定IP
WebView開發(fā)環(huán)境調(diào)試
現(xiàn)在已經(jīng)可以通過小程序工具勾選web-view開發(fā)調(diào)試選項(xiàng)解決
之前解決思路
準(zhǔn)備工具: charles
- 開啟charles -> proxy settings -> 設(shè)置proxy(比如:127.0.0.1:8888)
- 微信開發(fā)工具 -> 設(shè)置 -> 代理設(shè)置 -> 手動(dòng)設(shè)置代理為(127.0.0.1:8888)
- 本地啟動(dòng)一個(gè)https服務(wù)器,可以用webpack devserver實(shí)現(xiàn)
devServer: {
hot: true,
https: true,
contentBase: path.resolve(root, 'dist'),
publicPath: '/',
port: 8080,
proxy: { //此處用來轉(zhuǎn)發(fā)webview中網(wǎng)絡(luò)請(qǐng)求,解決跨域問題
'/api': {
target: 'https://api.example.com',
changeOrigin: true,
}
},
historyApiFallback: true,
disableHostCheck: true
}
- charles把安全的業(yè)務(wù)域名,映射到本地
1. charles -> mapRemote https://m.example.com:443 到 https://m.example.com:8080
2. 修改本地host 127.0.0.1 m.example.com