iOS Safari:使用Deeplink,如何在安装应用后阻止打开应用商店?

时间:2019-08-09 06:44:40

标签: javascript ios node.js swift deeplink

我正在为deeplink实现iOS app并实现,但是问题是当我在iPhone中单击deeplink API时,该应用正在打开,但是在给定时间后该应用商店页面也会在应用程序顶部打开。

这是我在做什么:

我有一个deeplink的节点API,它正在发送HTML文件名send.html,该文件的JavaScript代码如下:

send.html:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8" />
    <script src="/deeplink-redirect.js"></script>
</head>

<body deeplink="iOS_DEEPLINK_URL" appstorelink="APP_STORE_LINK">

    <img src="logo.png" alt="logo" />
    <br />
    <a href="APP_STORE_LINK">Download the app</a>
</body>

</html>

deeplink-redirect.js

window.onload = function () {
    window.location.href = document.body.getAttribute('deeplink');
    setTimeout(function () {
        window.location.href = document.body.getAttribute('appstorelink');
    }, 500)
}

但是发生了什么事情:当我在iPhone中单击deeplink API时,它会在Safari中发送上述HTML文件,并且应用程序URL window.location.href = document.body.getAttribute('deeplink');打开应用程序,但之后500毫秒代码document.body.getAttribute('appstorelink');被执行并在我的应用顶部打开应用商店。

但是,如果我将超时时间从500增加到4000,那么它的工作状况很好,并且应用商店无法打开。但是我想要的超时时间非常少,例如500,并且当iPhone中未安装该应用程序时,它应该重定向到给定的应用程序商店链接。 我有正确的apple-app-site-association文件和正确的GET API /apple-app-site-association

请提出任何解决方案。关于StackOverflow有很多问题,但是没有人为我工作。

技术:Node.js,iOS,Hapijs,Javascript,HTML。

浏览器: Safari(在iPhone中)

0 个答案:

没有答案