我尝试将用户重定向到应用程序(如果他们已安装在设备中),否则将其重定向到应用程序下载页面(iTunes)。
我想捕获客户端最后到达的确切网址(应用程序网址或网络网址)。

是否有任何后台进程来捕获客户端提供的URL?

if (IOSSafari)
{
    window.location.href = appUrl;
    var startTime = new Date();
    setTimeout(function()
    {
        if (new Date() - startTime < 600)
        {
            if (window.location.href != webUrl)
                window.location.href = webUrl;
        }
    }, 500);
}

我的尝试(我尝试如下):
if (IOSSafari)
{
    callback(appUrl); // first callback to my server to identify the user presence
    window.location.href = appUrl;
    var startTime = new Date();
    setTimeout(function()
    {
        if (new Date() - startTime < 600)
        {
            if (window.location.href != webUrl)
            {
                // second callback to my server to identify the user presence
                callback(appUrl);
                window.location.href = webUrl;
            }
        }
    }, 500);
}

案例1应用已安装:-
  • 用户A输入
  • 我的第一个回调有效,用户重定向到应用程序
  • Now表对用户A具有appUrl的单个条目。由于用户出现在app(appUrl)中,因此按预期工作。

  • 未安装案例2应用:
  • 用户A输入
  • 我的第一个回调有效,用户重定向到应用程序
  • 由于设备中不存在该应用程序,因此它指示Safari无法打开此页面
  • 第二个回调有效,用户重定向到应用程序下载页面
  • Now表具有用户A的2个条目(带有appUrl的条目和带有webUrl的条目),而不是单个条目(因为用户出现在下载页面中,所以带有webUrl条目)
  • 最佳答案

    捕获该值的最简单方法是使用客户端cookie。

    document.cookie="lasturl="+xyz+";path=/";
    //xyz is webUrl or appUrl , so write the above line before calling window.location.href=...
    
    document.cookie="lasturl="+deeplinkUrl+";path=/";
    window.location.href=deeplinkUrl;
    
    //or
    
    document.cookie="lasturl="+webUrl+";path=/";
    window.location.href=webUrl;
    

    稍后,您可以检查Cookie值中的“lasturl”

    关于javascript - IOS Safari中的Javascript后台进程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21405091/

    10-10 02:27