本文记录uni-appx开发项目中启动参数的相关知识。
整体参数预览
- path: 启动时的页面路径,首次启动时一般为
pages.json中配置的首页(即第一项,如:/pages/index/index)。 - query: 启动时携带的参数,目前在App端默认是
UTSJSONObject类型的空对象,该参数主要为小程序端预留使用。 - scene: 场景参数,用于指定启动的场景,App端默认值为1001,该参数主要为小程序端预留使用。
- refererInfo: 来源信息,包含来源应用的AppID、启动场景等内容,目前在App端默认是
UTSJSONObject类型的空对象,该参数主要为小程序端预留使用。 - appScheme: 启动时的完整URL Scheme,仅App端支持,默认值为空字符串。
- appLink: 通过通用链接AppLink启动时的完整appLink参数,用于传递AppLink相关信息,仅App端支持,默认值为空字符串。
目前在App端开发中,实际常用的参数只有3个:path、appScheme和appLink。
API差异说明
uni.getLaunchOptionsSync():获取应用首次启动时的参数,返回值与App.onLaunch的回调参数结构一致。uni.getEnterOptionsSync():获取应用本次进入前台时的参数,返回值与App.onShow的回调参数结构一致。
应用首次启动或杀死进程后重新启动时,会触发App.onLaunch回调;每次应用从后台进入前台显示时,都会触发App.onShow回调。
应用初始化时获取参数
如果需要在App.onLaunch中获取启动参数,可以直接使用其回调函数传递的参数:
<script lang="uts">
export default {
onLaunch: function (launchOptions) {
console.log('launchOptions:', launchOptions);
}
}
</script>如果需要在其他页面或公共函数中获取首次启动参数,无需在App.onLaunch中保存后再传递,直接调用uni.getLaunchOptionsSync()即可:
// 获取App.onLaunch首次启动时的参数
const launchOptions = uni.getLaunchOptionsSync();
console.log('launchOptions:', launchOptions);应用显示时获取参数
如果需要在App.onShow中获取启动参数,可以直接使用其回调函数传递的参数:
<script lang="uts">
export default {
onShow: function (enterOptions) {
console.log('enterOptions:', enterOptions);
}
}
</script>同样,如果需要在其他页面或公共函数中获取本次进入前台的参数,无需在App.onShow中保存后再传递,直接调用uni.getEnterOptionsSync()即可:
// 获取App.onShow本次进入前台时的参数
const enterOptions = uni.getEnterOptionsSync();
console.log('enterOptions:', enterOptions);iOS App端使用示例
通过AppLink启动时的参数
首次启动时launchOptions参数的返回示例:
{
"path": "pages/index/index",
"query": {},
"scene": 1001,
"referrerInfo": {},
"appScheme": null,
"appLink": "https://www.imwarn.com/hanzi/?channelId=1_imwarn_com_1"
}每次进入前台时enterOptions参数的返回示例(例如:应用切入后台时显示的是
pages/novel/novel页面):
{
"path": "pages/novel/novel",
"query": {},
"scene": 1001,
"referrerInfo": {},
"appScheme": null,
"appLink": "https://www.imwarn.com/hanzi/?channelId=1_imwarn_com_1"
}更新日志
2025-12-09
- HBuilderX版本:4.85 (ARM架构)
- 重点:对iOS AppLink启动参数的记录
