谷粒的泥坑

🌿谷粒的生活笔记 —— 在数字世界的泥坑中,播种代码、文字的种子,静待每一份热爱自然生长

通过链接打开微信小程序的指定页面

微信小程序可以通过链接(URL Scheme 或 URL Link)打开指定的小程序页面,但需要满足一定条件并遵循微信的规则。以下是具体实现方式:


1. 使用 URL Scheme(旧版方案)
• 适用场景:通过生成的链接(如二维码、短信、网页等)跳转到小程序指定页面。

• 生成方式:

• 在小程序后台的「开发」->「开发设置」->「接口设置」中获取 AppID

• 使用微信提供的工具或后端接口生成 URL Scheme,格式如下:

1
weixin://dl/business/?t=小程序原始ID&page=path?key=value
◦ `page`:指定页面路径(如 `pages/index/index`)。 ◦ `key=value`:传递的参数(需在小程序内解析)。

• 限制:

• 需用户手动点击链接触发。

• 部分场景可能受限(如iOS系统限制)。


2. 使用 URL Link(新版推荐)
• 适用场景:更灵活的跳转方式,支持通过网页、App等场景唤起小程序。

• 生成方式:

• 通过微信开放平台的接口生成 URL Link,需后端调用接口(如 generateURLOpenLink)。

• 示例链接格式:

1
https://wxaurl.cn/<encoded_data>

• 优势:

• 支持动态参数传递。

• 可设置跳转的页面路径和参数。

• 兼容性更好(支持iOS/Android)。


3. 注意事项
• 路径合法性:跳转的页面路径必须在小程序的 app.json 中注册。

• 参数传递:通过 query 传递参数(如 page/path?key=value),在小程序内通过 onLoad 接收。

• 用户授权:若跳转涉及敏感操作(如支付),需用户主动触发。

• 域名白名单:若从网页跳转,需配置合法域名(在小程序后台「开发」->「开发设置」中设置)。


示例代码
生成 URL Link(后端调用接口)

1
2
3
4
5
6
7
8
9
10
// 调用微信接口生成 URL Link
const result = await wxOpenSdk.generateURLOpenLink({
jumpWxa: {
path: 'pages/detail/detail?id=123', // 目标页面路径
query: { foo: 'bar' } // 额外参数
},
isExpire: true, // 是否设置过期时间
expireTime: Date.now() + 24 * 60 * 60 * 1000 // 过期时间(可选)
});
console.log(result.openlink); // 输出链接

小程序内接收参数

1
2
3
4
5
6
Page({
onLoad(options) {
console.log(options.id); // 输出 "123"
console.log(options.foo); // 输出 "bar"
}
});

其他方式
• 二维码:生成带参数的二维码,扫码后跳转指定页面。

• 小程序导航:通过 wx.navigateTowx.redirectTo 在小程序内部跳转(非外部链接)。


总结:通过 URL Scheme 或 URL Link 可以实现外部链接跳转小程序指定页面,推荐使用 URL Link(需后端支持)。具体实现需结合业务场景和微信开放平台的最新文档。