我正在为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中)