当前位置: 首页 > news >正文

【外部链接跳转uniapp开发的App内指定页面】实现方案

🌻🌻前言

在移动应用开发中,经常需要通过外部链接(如短信、网页、二维码等)直接跳转到App内的特定页面,例如活动详情页、用户主页等。本文将以uniapp为例,详细讲解如何通过URL Scheme和**Universal Link(App Link)**实现外部链接精准跳转至App内指定页面。


🚀🚀实现方案

1. 使用URL Scheme跳转

URL Scheme是一种通过自定义协议唤醒App的技术(如 myapp://page/home)。

步骤1:配置URL Scheme

manifest.json源文件 中配置应用协议:

// manifest.json (uni-app项目)
"app-plus": {
  "schemes": ["myapp"] // 自定义协议名称(建议使用英文)
}

或者在manifest.json可视化界面中配置协议:
打开项目的manifest.json文件,在 “App常用其它设置” -> “Android设置” -> “UrlSchemes” 项中进行设置:
在这里插入图片描述

步骤2:处理外部链接

App.vueonLaunch 生命周期中监听启动参数:

onLaunch: function(options) {
  // 处理外部唤醒逻辑
  if (options.path && options.query) {
    const path = options.path; // 获取路径,如 "pages/home/index"
    const query = options.query; // 获取参数,如 {id: 123}
    uni.navigateTo({
      url: `/${path}?${Object.keys(query).map(k => `${k}=${query[k]}`).join('&')}`
    });
  }
}
步骤3:生成外部链接

外部链接格式示例:

myapp://pages/user/info?user_id=1001

2. 使用Universal Link(iOS)或App Link(Android)

适用于通过HTTPS链接直接跳转App(需配置域名关联)。

配置步骤:
  1. iOS:在苹果开发者中心配置Associated Domains,格式为 applinks:yourdomain.com
  2. Android:配置 assetlinks.json 文件并托管至域名根目录。
  3. 在uniapp中监听链接:
// App.vue
onLaunch: function() {
  // #ifdef APP-PLUS
  plus.runtime.getIntent().payload = url; // 处理Android
  // 监听iOS Universal Link
  plus.runtime.addEventListener('intent', (e) => {
    this.handleOpenURL(e.payload);
  });
  // #endif
}

🚀🚀关键代码示例

解析URL参数并跳转

handleOpenURL(url) {
  // 示例URL: myapp://pages/goods/detail?id=2023
  const params = url.split('://')[1]; // 获取路径和参数
  const [pathPart, queryPart] = params.split('?');
  const query = {};
  if (queryPart) {
    queryPart.split('&').forEach(item => {
      const [key, value] = item.split('=');
      query[key] = decodeURIComponent(value);
    });
  }
  // 跳转到指定页面
  uni.reLaunch({
    url: `/${pathPart}?${Object.keys(query).map(k => `${k}=${query[k]}`).join('&')}`
  });
}

🚀🚀注意事项

  1. 安全性:URL Scheme可能被其他应用劫持,建议对参数加密或签名。
  2. 兜底处理:若用户未安装App,可跳转应用商店(通过判断 plus.runtime.isApplicationExist)。

相关资源

  • uniapp官方文档-应用唤醒
  • Apple Universal Links指南
  • Android App Links配置

相关文章:

  • git切换版本
  • 微信小程序使用的SSL证书在哪里申请?
  • Mybatis的一级缓存和二级缓存
  • 【MySQL】库和表的操作
  • css的背景图和背景色混用;rgba和opacity区别
  • 如何使用logrotete定时切割mysql的慢日志
  • 【SpringMVC】深入解析使用 Postman 在请求中传递对象类型、数组类型、参数类型的参数方法和后端参数重命名、及非必传参数设置的方法
  • Spring Cloud Alibaba 实战:Sentinel 保障微服务的高可用性与流量防护
  • React 性能优化
  • 使用Python实现量子计算实验工具的全景指南
  • WHAT - 前端性能指标
  • 记录一次解决日期格式引起的SQL失效的问题
  • Python Flask 开发用于访问数据库的 REST API
  • 深度学习与大模型-矩阵的运算
  • Trae AI 自动升级项目Nuxt版本
  • 其他元素的乘积(前后缀积)
  • C++ 编程指南27 - 始终将 mutex 与它所保护的数据一起定义,并尽可能使用 synchronized_value<T>
  • Linux网络 五种 IO 模型
  • Netty基础—2.网络编程基础四
  • Linux运维(三)Linux命令行操作:从菜鸟到高手
  • 山东发布高温橙警:预计19日至21日局地可达40℃
  • 80后女博士黄双燕拟提名为内蒙古盟市政府(行署)副职人选
  • 词条数量大幅扩充,《辞海》第八版启动编纂
  • 李成钢:近期个别经济体实施所谓“对等关税”,严重违反世贸组织规则
  • 董军同德国国防部长举行会谈
  • 著名植物学家、园艺学家,国际植物园协会原主席贺善安逝世