我有一个网页,需要使用深层链接检查应用是否存在,但它似乎没有像它应该的那样工作。我试过以下的事情。
header('Location: exampleapp://param=test');
使用JavaScript重定向(没有工作)
var appurl = 'exampleapp://param=test';
var appstore = 'https://itunes.apple.com/us/app/...';
var timeout;
function preventPopup() {
clearTimeout(timeout);
timeout = null;
window.removeEventListener('pagehide', preventPopup);
}
function startApp() {
window.location = appurl;
timeout = setTimeout(function(){
if(confirm('You do not seem to have the App installed, do you want to go download it now?')){
document.location = appstore;
}
}, 100);
window.addEventListener('pagehide', preventPopup);
}
// app start is then called in the onload
与上述相同,但将window.location = appurl;
行替换为document.getElementById('deeplink').click();
,并在html的网页中添加一个链接。 (作品)<a id="deeplink" href="exampleapp://param=test">Deep Link</a>
您是否有理由不能在PHP中使用标头重定向?
答案 0 :(得分:0)
由于HTTP的工作方式,PHP版本不起作用。 HTTP协议没有指定它应该工作以从&#34;位置:&#34;内重定向到不同的协议。头。这里没有特定的PHP,它是一个HTTP问题。
Javascript版本不起作用,因为您想设置Windows位置。并且窗口无法显示&#34; exampleapp://..." 。您希望链接打开,就像用户点击它一样。您可以使用window.location
而不是document.location.href
。这应该有用。
另一个问题:
在您的代码中,您在1)和2)中编写exampleapp://
。在3)你写testapp://
- 确保你在所有三种情况下使用相同的URL,这样你就可以确保URL最终可以工作..
答案 1 :(得分:0)
答案是使用名为“智能横幅”的苹果实施
<meta name="apple-itunes-app" content="app-id=myAppStoreID, affiliate-data=myAffiliateData, app-argument=myURL">
您可以在内容中包含三个以逗号分隔的参数 属性:
app-id :(必填。)您应用的唯一标识符。查找您的应用ID 从iTunes Link Maker中,在“搜索”中键入应用程序的名称 字段,然后选择适当的国家/地区和媒体类型。在里面 结果,找到您的应用程序并在列中选择iPhone App Link 对。您的应用ID是id和?mt之间的九位数字。 affiliate-data :(可选。)您的iTunes会员字符串,如果您是 iTunes附属公司。如果你不是,请找到更多关于成为一个 iTunes http://www.apple.com/itunes/affiliates/的联盟会员。 app-argument :(可选。)为您的本机提供上下文的URL 应用程序。如果您包含此项,并且用户已安装您的应用,则可以 从您的网站跳转到iOS应用中的相应位置。 通常,保留导航上下文是有益的,因为:If 用户深入您网站的导航层次结构, 您可以传递文档的整个URL,然后在您的应用程序中解析它 将她重新路由到您应用中的正确位置。如果是用户 在您的网站上执行搜索,您可以传递查询字符串 她可以在你的应用程序中无缝地继续搜索 重新键入她的查询。如果用户正在创建内容, 您可以传递会话ID以下载您的网络会话状态 应用程序,所以她可以非破坏性地恢复她的工作。你可以生成 每个页面的app-argument动态地使用服务器端脚本。您 可以格式化它,只要它是一个有效的URL。