首页 APP开发 正文内容

uniapp 开发 iOS 应用,如何实现跳转 AppStore 应用下载页?

2023年11月03日 , , 301

这篇文章介绍两种方法实现从 APP 跳转到苹果的 AppStore 应用内页。

需求场景描述

在使用 uni-app 开发 iOS 应用时,其中有一个需求是每次启动 APP 时检查版本更新,如果有新版本就需要跳转到本 APP 的详细页,然后用户可以点击「更新」按钮来下载和更新最新版本的 APP。

那么我们在 uni-app 中怎么实现跳转到 iOS 系统里 AppStore 的我们这款 APP 的下载页呢?其实有两种方法可以实现。

uniapp 跳转 AppStore
uniapp 跳转 AppStore

两种实现方法

这两种方法都是基于 uni-app 的 Vue 页面,如果你使用的是 nvue 页面或者是最新的 UTS 的 uvue 页面,下面介绍的方法可能不适用。

另外,下面介绍的两种方法都需要知道自己的 iOS APP 的 apple ID,这是上架到 AppStore 的应用的唯一标识,在 App Store Connect 后台可以查询到,具体位置见下图所示:

查看 Apple ID
查看 Apple ID

方法一:通过 iOS 的 scheme 机制

为了方便不同 APP 间可以安全、便捷地相互跳转,iOS 专门设计了 scheme 机制,这是一种特殊的链接,可以让我们自己开发的 APP 可以直接跳转到其他 APP。比如手机淘宝 APP,它的 scheme 协议就是类似 taobao://xxxx 这样的特殊链接。

所以要跳转到 AppStore 也很简单,利用它的 scheme 协议 itms-apps:// 就可以了,具体实现的代码如下:

// 要先找到我们 APP 的 appleID
const appleID= 123xxxx;
plus.runtime.launchApplication({
    action: `itms-apps://itunes.apple.com/app/id${appleID}`
}, function(e) {
    console.log('打开 AppStore 失败,原因是: ' + e.message);
});

这样我们通过 uni-app 的 Vue 页面中的 plus.runtime.launchApplication 接口,就可以直接跳转到我们的 APP 下载页了。plus 是自动引入的,所以在 Vue 页面中可以直接使用。

方法二:直接打开 AppStore 网址

除了上面这种在 iOS APP 内跳转的方式,其实还可以直接打开网址的方式,原理是在 iOS 系统中,只要检测到打开的网址是 AppStore 上架应用的地址,就会自动跳转到 AppStore,利用这个机制,我们可以很简单地在 APP 中打开我们 APP 的 AppStore 网址就可以实现跳转到 AppStore。

具体实现的代码如下:

const appleID= 123xxxx;
plus.runtime.openURL(`https://apps.apple.com/cn/app/id${appleID}`);

代码很简洁,只有两行,实现的效果是一致的。

注意事项

上面两种方法都只能在 iOS 端有效,安卓端因为应用商店太多,实现十分麻烦,如果是多端应用,需要判断先判断为 iOS