正文
一、支付宝小程序
相关链接:
// scheme 链接 alipays://platformapi/startapp?appId=[appId]&page=[pagePath]&query=[params]
参数 | 描述 | 示例 |
appId | 要跳转的目标小程序 appId | 20170713077xxxxx |
pagePath | 要跳转到目标小程序的具体 page 页面,该值等于 app.json 里面的配置值;如果不带 page 字段,默认跳转到小程序首页。 注意:如 pagePath 需要带参数,也要进行 UrlEncode 处理。 |
pages/index/index |
query | 表示从外部 APP 携带的参数透传到目标小程序;如果不需要携带参数给小程序,可以不带该参数。 query:启动参数,内容按照格式为:参数名=参数值&参数名=参数值。 注意:query 携带的启动参数必须进行 UrlEncode 否则只能获取第一个参数! |
xx%3Dxx |
1. 应用逻辑
每次通过 scheme 调用,前端表现是重新触发 onLaunch 和 onShow,都会传参给app.js 的 onLaunch 和 onShow,基础页面会重新触发 onLoad 和 onShow 方法。
在保活期间(5分钟),比如锁屏之后,会重新触发 onShow 方法,但是却没法获取参数,也就是传参 scheme 只会在调用的时候触发一次,再次启动只是触发 onShow 不会传参。只能前端在 onShow 里做相应的业务逻辑。
2. 页面的逻辑
当小程序用 scheme 从后台唤起的时候,其实相当于重新被打开了 onLoad,还有 onShow 都会被触发。
在保活期间(5分钟)被重新唤起的时候,就只会触发 onShow 。
3. 小程序通过 scheme 跳转如何获取启动参数
在小程序 app.js 的 onLaunch
或 onShow
进行获取启动参数。
如果冷启动,则会在 onLaunch(options) 中获得参数; 如果为热启动,则会在 onShow(options) 中获得参数。建议冷启动中获取不了的时候,再尝试在 onShow 中获取,若还是获取不了,则可判定为没有拿到该参数。
4. 其他
my.switchTab()、my.navigateBack() 不支持带参跳转。
二、微信小程序
大同小异,后续补上...