uniapp如何打开第三方app

在uniapp中怎么调用手机上的第三方app?比如我想从自己的uniapp应用跳转到微信、支付宝或者其他已安装的app,应该怎么实现?需要用到哪些API或插件?有没有具体的代码示例?

2 回复

在uniapp中,可以使用uni.navigateToMiniProgram打开微信小程序,或通过plus.runtime.launchApplication调用原生API打开第三方App。需要配置应用白名单,并注意平台兼容性。


在 UniApp 中,可以通过 URL SchemeUniversal Link(iOS)打开第三方应用。以下是具体方法和示例代码:

方法一:使用 uni.navigateToMiniProgram(适用于微信小程序跳转其他小程序或部分应用)

如果目标应用支持微信小程序跳转,可使用此方法:

uni.navigateToMiniProgram({
  appId: '目标小程序AppID', // 替换为第三方应用的AppID
  path: '页面路径', // 可选,指定跳转页面
  success: () => console.log('跳转成功'),
  fail: (err) => console.log('跳转失败', err)
});

方法二:使用 plus.runtime.launchApplication(App端通用)

通过 URL Scheme 直接启动第三方应用(需在 manifest.json 配置白名单):

// #ifdef APP-PLUS
plus.runtime.launchApplication(
  {
    action: '目标应用的URL Scheme(如:weixin://)' 
  },
  (e) => {
    console.log('打开成功');
  },
  (err) => {
    console.log('打开失败:', err);
    uni.showToast({ title: '未安装应用', icon: 'none' });
  }
);
// #endif

方法三:使用 uni.openScheme(H5或App端)

直接通过 URL 打开应用或网页:

// 尝试打开第三方应用,失败则跳转下载页
uni.openScheme({
  url: 'URL Scheme 或下载链接',
  fail: () => {
    uni.showModal({ content: '是否下载应用?', success: (res) => {
      if (res.confirm) window.open('应用商店链接');
    }});
  }
});

注意事项:

  1. URL Scheme 获取:需查询目标应用的官方文档(如微信:weixin://,支付宝:alipay://)。
  2. 平台差异:iOS 和 Android 的 Scheme 可能不同,需分别测试。
  3. 权限配置:在 App 端需在 manifest.jsonplus->distribute->plugins 中配置协议白名单。
  4. 兼容性:部分应用可能限制被第三方调用。

示例:打开微信

// #ifdef APP-PLUS
plus.runtime.launchApplication(
  { action: 'weixin://' },
  () => {},
  () => uni.showToast({ title: '未安装微信', icon: 'none' })
);
// #endif

建议先检测应用是否安装(通过尝试打开并捕获失败回调),以提升用户体验。

回到顶部