小程序url不能加端口号吗

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=123name=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字节。传递的参数需要进行合理的编码,以避免出现乱码或安全问题。