Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript iOS Safari:使用deeplink,我如何防止在安装应用程序时打开应用程序商店?_Javascript_Ios_Node.js_Swift_Deeplink - Fatal编程技术网

Javascript iOS Safari:使用deeplink,我如何防止在安装应用程序时打开应用程序商店?

Javascript iOS Safari:使用deeplink,我如何防止在安装应用程序时打开应用程序商店?,javascript,ios,node.js,swift,deeplink,Javascript,Ios,Node.js,Swift,Deeplink,我正在为iOS应用程序实现deeplink,并实现了它,但问题是当我在iPhone中单击deeplink API时,应用程序正在打开,但在给定的时间之后,应用程序商店页面也在应用程序顶部打开 我现在做的是: 我有一个用于deeplink的节点API,它正在发送一个HTML文件名send.HTML,其中包含一些javascript代码: send.html: <!DOCTYPE html> <html lang="en"> <head> <met

我正在为
iOS应用程序
实现
deeplink
,并实现了它,但问题是当我在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>
但是发生了什么:当我在iPhone中单击
deeplink API
时,它会在safari中发送上面的HTML文件和应用程序URL
window.location.href=document.body.getAttribute('deeplink')打开应用程序,但500毫秒后代码
document.body.getAttribute('appstorelink')并打开我的应用程序顶部的应用程序商店

但是,如果我将超时时间从500增加到4000,则其工作正常,应用程序商店不会打开。但是我想要的超时时间非常少,比如500,当应用没有安装在iPhone上时,它应该重定向到给定的应用商店链接。 我有正确的
苹果应用程序站点关联
文件和正确的GET API
/apple应用程序站点关联

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

技术:Nodejs、iOS、Hapijs、Javascript、Html


浏览器:Safari(在iPhone中)

我已经实现了很多次深度链接,我不得不说我确实使用了5000毫秒的延迟,500毫秒的延迟非常少,因为用户需要在Safari的弹出窗口上执行操作才能打开应用程序(如果有),所以基本上你必须使用延迟时间,您也可以尝试使用universal deep Links,只需将此代码行称为“window.location.href=document.body.getAttribute('appstorelink');”当Deeplink无法检测应用程序时。不要在setTimeout函数中调用此函数。
window.onload = function () {
    window.location.href = document.body.getAttribute('deeplink');
    setTimeout(function () {
        window.location.href = document.body.getAttribute('appstorelink');
    }, 500)
}