在 UniApp 中,通过微信扫码打开 App 主要依赖微信开放平台的 App 跳转功能(Universal Links 或 App Links)和 URL Scheme。以下是实现步骤和注意事项:
实现原理
微信扫码后,识别二维码中的链接,通过配置的通用链接或 URL Scheme 触发手机打开对应的 App。
步骤 1:配置微信开放平台
- 注册并登录微信开放平台,创建移动应用,获取 AppID。
- 在应用配置中设置 iOS 通用链接(Universal Links) 和 Android App Links(或 URL Scheme):
- iOS:需配置一个 HTTPS 域名(如 https://example.com/apple-app-site-association),并在 App 的manifest.json中声明。
- Android:推荐使用 App Links(HTTPS 域名),或备用 URL Scheme(如 yourapp://path)。
 
步骤 2:生成二维码内容
- 二维码内容应为配置的通用链接或 URL Scheme,例如:
- Universal Links(iOS):https://example.com/openapp?param=123
- URL Scheme(Android 备用):yourapp://path?param=123
 
- 建议优先使用通用链接,兼容性更好。
步骤 3:UniApp 中处理跳转
在 App 的入口文件(如 App.vue)或页面中监听打开事件,解析参数:
// App.vue 的 onLaunch 或 onShow 中
onLaunch: function(options) {
  // 检查启动参数(适用于 URL Scheme 或 Universal Links)
  if (options.query && options.query.param) {
    const param = options.query.param;
    console.log('扫码参数:', param);
    // 跳转到指定页面或处理业务
    uni.navigateTo({
      url: `/pages/target?param=${param}`
    });
  }
}
步骤 4:生成二维码
使用第三方工具(如草料二维码)将配置的链接生成二维码。测试时确保:
- iOS:设备已安装 App,且 Universal Links 域名已验证。
- Android:App Links 需关联域名并签名,或使用 URL Scheme(可能需用户确认)。
注意事项
- 微信限制:微信中默认禁止直接打开外部 App,需用户手动点击“在浏览器打开”后触发跳转。可通过微信开放平台的“App 跳转功能”申请权限。
- 兼容性:Universal Links 需 iOS 9+,App Links 需 Android 6+;低版本系统回退到 URL Scheme。
- 安全域名:确保通用链接的域名支持 HTTPS,且正确部署 apple-app-site-association(iOS)和assetlinks.json(Android)文件。
简化方案(仅开发测试)
如果仅用于测试,可直接使用 URL Scheme 生成二维码(如 yourapp://scan?data=test),但实际部署需按上述步骤配置。
通过以上流程,即可实现微信扫码打开 UniApp 应用并传递参数。如有问题,可参考微信开放平台文档或 UniApp 官方指南。