做鸿蒙开发,页面跳转、跨应用拉起、推广引流下载是高频刚需,但很多同学容易混淆:router、Want、openLink、App Linking、store:// 协议到底该怎么用?
这篇一次性把鸿蒙全场景跳转 + 应用推广下载方案讲清楚,代码直接复制,看完就能上手。
应用内部页面切换,统一使用 router 路由模块,简单稳定。
1. 跳转并传参
import router from '@ohos.router';// 跳转到指定页面,带参数router.push({url: 'pages/SecondPage',params: { name: '数据示例' }});
router.push:新增页面栈,支持返回router.replace:替换当前页面,不保留历史2. 目标页面接收参数
@State name: string = router.getParams()?.['name'];跨应用、跨元服务,核心是Want + startAbility。
import Want from '@ohos.app.ability.Want';import common from '@ohos.app.ability.common';const want: Want = {bundleName: "目标应用包名",abilityName: "目标Ability名",parameters: { key: "参数" }};const context = getContext(this) as common.UIAbilityContext;context.startAbility(want);
一行代码直接调起系统浏览器:
context.openLink("https://www.domain.com");如果你是做自家应用推广、广告跳转、分享下载,下面两个是核心方案。
只需要拼接包名,即可打开华为应用市场详情页:
const want: Want = {uri: "store://appgallery.huawei.com/app/detail?id=com.example.app"};context.startAbility(want);
优点:
适用:单纯引导用户下载。
企业级推广、分享、广告投放强烈推荐。
特点:
使用方式:
context.openLink("https://你的AppLinking链接");优势:
适用:裂变分享、广告推广、渠道引流。
如打开地图、扫码等自定义 schema:
context.openLink("geo:37.7749,-122.4194");需要集成微信 SDK,通过官方接口拉起:
const req = new wxopensdk.LaunchMiniProgramReq();req.userName = "小程序原始ID";req.path = "pages/index";WXApi.sendReq(context, req);
module.json5 配置权限:"requestPermissions": [{ "name": "ohos.permission.START_ABILITIES_FROM_BACKGROUND" }]
context.startAbility(want).catch(err => {// 跳转到下载页});
鸿蒙跳转看似接口多,其实按场景选就非常清晰:
整套内容覆盖日常开发 90% 场景,代码可直接用于项目。
本文根据鸿蒙官方智能回答整理而成,仅供开发者学习参考。
📌 推荐阅读