微信小程序URL Link与URL Scheme使用指南及2022年4月11日新规则解析

2025-01-07
来源:网络整理

微信小程序有URL链接和URL(系统不支持直接识别URL,用户无法正常打开小程序,开发者需要使用H5页面传输,然后跳转打开小程序),可以用于短信和电子邮件。 、网页、微信等推出小程序的业务场景。

生成的URL链接如下:/**或/**,生成的...URL如下:://dl//?t=

但后来可能发现很多人滥用,于是又出台了一条规则:从2022年4月11日开始,URL Link和URL有效期最长为30天,不再支持永久有效的URL Link和URL。每个独立的 URL Link 和 URL 被某个用户访问后,只有该用户才能再次访问并打开对应的小程序,其他用户无法再次通过同一 URL 打开该小程序。

现在想要使用的跳转链接,只能用来在短信触发时,实时不断地生成唯一的链接。与上一代所有用户都可以使用的固定链接不同,但小程序的文档中也提到,通过短信打开小程序有三种方式:①通过URL ②通过URL Link ③通过云开发静态网站。

经过最终评估,不依赖后端,使用云端开发静态传输页面更为合适。运维团队在申请短信模板时,忘记在URL前后加空格,导致URL路径后面出现一串中文参数,如下图:

点击网址时可以正常打开转账页面,但点击“打开小程序”按钮却没有任何反应。终于在文档中找到了答案。原来界面中的参数有限制:最多1024个字符,并且只支持数字和大小。写出英文和一些特殊字符:!#$&'()*+,/:;=?@-._~%

// 获取小程序路径和参数 function getWxroute() { // 小程序路径与参数映射 const pathMaps = { home: '/pages/index/home', im: '/pages/chat/list' } const query = getQuery()

小程序url指的是什么_小程序开发url添什么?_url跳转小程序

// 微信生成URL Link和URL Scheme的query部分:最大1024个字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~% // https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-link/urllink.generate.html let channelId = query.c || '' // 渠道ID channelId = channelId.replace(/[^A-Za-z0-9!#$&'()*+,/:;=?@-._~%]/g, '') return { path: pathMaps[query.p || 'home'], query: `channelId=${channelId}`, } } // 获取路径中的参数 function getQuery(url = location.href) { const search = decodeURIComponent(url).split('?')[1] || '' const query = {} if (search) { const searchArr = search.split('&') let arr

小程序开发url添什么?_小程序url指的是什么_url跳转小程序

for (let item of searchArr) { if (!item) continue arr = item.split('=') query[arr[0]] = arr[1] } } return query }

通过调试,确实发现参数中也包含了路径中的汉字,并且文档中也写了接口返回的错误码(参数填写错误)。最后在获取参数时,通过正则表达式去掉所有不支持的字符,解决了问题。

经验教训:

1、匹配短信中的URL或链接时,要注意前后内容的处理。

2. URL链接和URL部分不支持中文参数。

分享