向日葵 | 2020-03-9
绝大部分微信小程序应用都需要提交、请求网络数据。例如:微信小程序点餐系统,需要向后台服务提交订单信息;微信小程序商城,需要向后台服务请求商品信息等。
实现这些数据的提交、请求,都要用到网络相关接口,主要包括:
普通 HTTPS 请求(request)、WebSocket 通信(connectSocket)和文件上传/下载(uploadFile/ downloadFile)
按照微信小程序的要求,在正式环境,每个微信小程序需要事先设置一个通讯域名,小程序可以跟指定的域名与进行网络通信。此外,服务器域名需要在小程序后台-设置-开发设置-服务器域名,中进行配置,配置时需要注意:
对于开发环境,要求相对不是特别严格。但是,在真机测试的时候,依然需要外网访问开发计算机。必须特别注意的是,开发环境网络访问不能使用localhost。localhost指的是开发计算机,微信小程序是在手机的环境工作的,不是开发计算机。手机的微信小程序localhost是不能访问开发计算机的。
解决这个问题,就需要使用花生壳的两个技术支持:1.域名,2.端口映射。
1、以IIS为例,首先确保本地局域网正常访问。打开浏览器测试访问本地建立的网站是否正常,如下图所示:
2、访问https://hsk.oray.com/ ,点击右上角注册账号;
3、点击导航栏“下载”按钮,下载安装花生壳程序;
4、安装完成后登录花生壳客户端;
5、登录成功后,点击“+”,添加内网映射;
① 应用名称:自定义填写;
② 映射类型:选择HTTPS;
③ 外网域名:选择已购买HTTPS配件的顶级域名;
④ 内网主机:填写IIS服务器的本地局域网IP;
⑤ 内网端口:填写IIS的HTTP端口;
最后点击保存,映射添加成功。
注意:因微信扫描机制严格不建议使用壳域名用作微信推广,为防止受到影响,请使用顶级域名
6、可以看到生成的外网访问地址:https://域名
7、通过生成的外网访问地址,即可在外网访问了,网络环境准备完毕。
8、我们定义一个test.txt文件充当服务端相应数据。将这个文件部署到网站。使用浏览器访问,可以看到test.txt。这表示IIS和花生壳工作正常。
9、打开微信小程序。
注意:微信小程序要求使用https,但是,现在是开发阶段,我们可以选择“不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书”。
微信小程序有部分接口明确要求必须使用https的443端口,利用花生壳可以方便的解决这个问题。
现在可以编写微信小程序。
(1)wxml文件
(2)js文件
(3)执行效果
10、真机测试,点击“预览”
11、扫面二维码,在手机看到访问效果。
总结语
微信小程序开发环境的网络访问的难题是,在真机测试的时候,需要外网访问开发计算机。花生壳解决的是外网访问问题,利用花生壳提供的域名实现外网访问,实现真机测试访问开发计算机的需求。