iosafari中的Javascript后台进程
如果用户已在其设备中安装了应用程序,我会尝试将其重定向到应用程序,否则会将其重定向到应用程序下载页面(iTunes)。 我想捕获客户端最后到达的确切url(应用程序url或web url) 是否有任何后台进程来捕获客户端显示的urliosafari中的Javascript后台进程,javascript,jquery,ios,background-process,deep-linking,Javascript,Jquery,Ios,Background Process,Deep Linking,如果用户已在其设备中安装了应用程序,我会尝试将其重定向到应用程序,否则会将其重定向到应用程序下载页面(iTunes)。 我想捕获客户端最后到达的确切url(应用程序url或web url) 是否有任何后台进程来捕获客户端显示的url if (IOSSafari) { window.location.href = appUrl; var startTime = new Date(); setTimeout(function() {
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(iosafari)
{
window.location.href=appUrl;
var startTime=新日期();
setTimeout(函数()
{
如果(新日期()-开始时间<600)
{
如果(window.location.href!=webUrl)
window.location.href=webUrl;
}
}, 500);
}
我的尝试(我尝试如下):-
if(iosafari)
{
回调(appUrl);//第一次回调到我的服务器以识别用户的存在
window.location.href=appUrl;
var startTime=新日期();
setTimeout(函数()
{
如果(新日期()-开始时间<600)
{
如果(window.location.href!=webUrl)
{
//对我的服务器进行第二次回调,以识别用户是否存在
回调(appUrl);
window.location.href=webUrl;
}
}
}, 500);
}
案例1应用程序已安装:-
获取该值的一个最简单的方法是使用客户端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;
稍后,您可以在下面的代码中检查“lasturl”的cookie值,并使用一个名为“token”的随机值创建一个新参数
if (IOSSafari) {
callback(appUrl); // first callback to my server to identify the user presence
var tokenID=parseInt(Math.random()*100000);
window.location.href = appUrl+"?token="+tokenID;
var startTime = new Date();
setTimeout(function() {
if (new Date() - startTime < 600) {
if (window.location.href != webUrl) {
callback(appUrl); // second callback to my server to identify the user presence
window.location.href = webUrl+"?token="+tokenID;
}
}
}, 500);
}
if(iosafari){
回调(appUrl);//第一次回调到我的服务器以识别用户的存在
var tokenID=parseInt(Math.random()*100000);
window.location.href=appUrl+“?token=“+tokenID;
var startTime=新日期();
setTimeout(函数(){
如果(新日期()-startTime<600){
如果(window.location.href!=webUrl){
回调(appUrl);//对我的服务器进行第二次回调以标识用户的存在
window.location.href=webUrl+“?token=“+tokenID;
}
}
}, 500);
}
设计“webUrl”时,它可以完成两项任务:
这样,表中只有一个条目,因为“webUrl”负责删除由令牌ID标识的不必要的先前条目。对于AppStore链接,有一个跟踪url,该url在记录事件后仅重定向到iTunes 对于正在安装的应用程序,当它注意到您的网站已打开应用程序ping时,您是否可以将其设置为跟踪url?(这在技术上是可行的,但需要iTunes上的应用程序更新包含代码才能做到这一点) 当应用程序获得:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
谢谢如果重定向到应用程序成功完成,那么我们如何获得cookie值,因为我们在本机应用程序中而不是在浏览器中?@DurgaGanesh:原始问题:“我想捕获准确的url”;没有说明本机应用程序可以使用的信息。请提供详细的背景资料;避免XY问题-@Ruud谢谢。请查看我的编辑。在用户重定向到本机应用程序后,我可以调用回调吗?依我看这是不可能的。如果我是对的,那么什么是另一种聪明的预测方法?(给自己取了一个新名字?@unaccessible:很抱歉这么说,但即使在编辑之后,也没有真正的问题。您说您的回调可以工作,从而在后端生成(可能可以区分的)日志条目。请说明你的问题。试着想象我不是通灵者。@Ruud谢谢你对我的兴趣。我的问题是如何跟踪用户是否重定向到应用程序或下载页面?它不可靠。这会导致不必要的工作。但我喜欢你的思维方式。谢谢我需要防止在数据库中保存额外的条目。而且我的客户端更喜欢日志而不是数据库。我不认为我们可以在两个条目在那里注册后修改日志。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation