深入链接PHP中的应用程序无效

时间:2015-04-28 20:26:51

标签: php ios deep-linking

我有一个网页,需要使用深层链接检查应用是否存在,但它似乎没有像它应该的那样工作。我试过以下的事情。

  1. 在PHP中使用重定向(没有工作)
  2. header('Location: exampleapp://param=test');

    1. 使用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
      
    2. 与上述相同,但将window.location = appurl;行替换为document.getElementById('deeplink').click();,并在html的网页中添加一个链接。 (作品)<a id="deeplink" href="exampleapp://param=test">Deep Link</a>

    3. 您是否有理由不能在PHP中使用标头重定向?

2 个答案:

答案 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)

答案是使用名为“智能横幅”的苹果实施

Apple Smart Banner

<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。

https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/PromotingAppswithAppBanners/PromotingAppswithAppBanners.html