1. 小程序URL的组成
在了解小程序URL是否能加端口号前,我们先来了解一下小程序URL的组成。
小程序URL由三部分组成:
协议:小程序URL的协议为 https
。
域名:小程序URL的域名是针对每个小程序的,域名一般包含小程序的AppID和小程序的名称。
路径:小程序URL的路径是指小程序的页面路径,从小程序的根目录开始,使用/
分隔符连接。
例如,一个小程序的URL可能长这样:
https://wx68ed2cf95b59612f.miniapp.xxx.com/pages/home/index
2. 小程序URL端口号的作用
端口号的作用是为了区分同一台计算机内不同的应用程序,以保证它们之间的通讯不会发生冲突。在浏览器访问网站时,如果不指定端口号,浏览器会默认使用80或443端口。
3. 小程序URL不能加端口号的原因
小程序的URL已经包含了小程序的域名信息,因此不需要再指定端口号。
另外,小程序开发者文档也明确规定了小程序URL不能加端口号:
注意:仅支持HTTPS协议,且不支持IP地址、localhost、端口号的形式。
4. 如何指定小程序页面之间的参数传递?
4.1. 基本用法
在小程序URL中指定页面之间的参数传递,可以在路径后面使用?
和键值对的形式进行传递,多个键值对间使用&
分隔符连接。
例如,在小程序A页面跳转到小程序B页面,并传递参数id=123
和name=test
:
wx.navigateTo({
url: '/pages/b/index?id=123&name=test'
})
在小程序B页面可以通过this.options
来获取传递的参数:
Page({
onLoad: function (options) {
console.log(options.id) //'123'
console.log(options.name) //'test'
}
})
4.2. 动态设置URL参数
有时候需要在小程序页面中动态设置URL参数,可以使用setData()
方法设置参数,并在onUnload()
生命周期中拼接URL:
Page({
data: {
id: '123',
name: 'test'
},
onLoad: function () {
this.setData({
id: '456'
})
},
onUnload: function () {
wx.navigateTo({
url: '/pages/b/index?id=' + this.data.id + '&name=' + this.data.name
})
}
})
以上代码表示,在小程序页面加载时,将id参数从123修改为456;在页面卸载时获取修改后的id和name参数,并拼接URL进行跳转。
4.3. URL参数的传递限制
小程序URL传递参数的个数不能超过1024字节。传递的参数需要进行合理的编码,以避免出现乱码或安全问题。