uniapp 如何打开app或跳转到其他应用

在uniapp中,如何实现打开其他APP或跳转到指定应用的功能?比如我想从自己的uniapp应用跳转到微信、支付宝或者另一个自己开发的APP,需要调用什么API或配置哪些参数?iOS和Android平台的实现方式是否有区别?求具体的代码示例和注意事项。

2 回复

在uniapp中,可以使用plus.runtime.launchApplication打开其他应用,需要传入包名或scheme。例如:

plus.runtime.launchApplication({
  pname: 'com.xxx.app', // Android包名
  action: 'android.intent.action.VIEW'
}, function(e) {
  console.log('打开成功');
});

iOS可用scheme方式打开。注意需配置应用白名单。


在 UniApp 中,可以通过以下方式打开其他应用或跳转:

1. 使用 uni.navigateToMiniProgram

用于跳转到其他微信小程序(需在同一开放平台下关联)。

uni.navigateToMiniProgram({
  appId: '目标小程序AppID', // 必填
  path: '页面路径', // 可选,如 pages/index/index
  success: () => console.log('跳转成功'),
  fail: (err) => console.log('跳转失败', err)
});

2. 使用 uni.openApp

用于打开手机上的其他应用(需配置应用协议 URL Scheme)。

uni.openApp({
  appKey: '目标应用的URL Scheme', // 如 weixin://
  success: () => console.log('打开成功'),
  fail: (err) => console.log('打开失败', err)
});

3. 使用 plus.runtime.openURL

通过 5+ API 打开外部应用(需在 App 端使用)。

// 仅 App 端生效
plus.runtime.openURL('scheme://path', (res) => {
  console.log('打开成功');
}, (err) => {
  console.log('打开失败', err);
});

注意事项:

  • URL Scheme:需提前获取目标应用的 URL Scheme(如微信:weixin://)。
  • 平台差异uni.navigateToMiniProgram 主要用于微信小程序环境;uni.openAppplus.runtime.openURL 适用于 App 端。
  • 配置白名单:在 App 端使用 URL Scheme 时,部分平台需配置白名单(如 iOS 的 LSApplicationQueriesSchemes)。

根据目标应用类型选择合适的方案,并确保测试兼容性。

回到顶部