为移动应用程序创建深层链接

vep*_*epe 9 redirect android deep-linking ios applinks

我想为我的应用创建促销链接 - 我可以通过电子邮件分发.当用户点击电子邮件中的链接时,网页会执行以下操作:

  1. 确定哪个操作系统(iOS或Android)
  2. 如果app安装在设备上 - 打开应用程序
  3. 否则 - 将用户带到AppStore(或)PlayStore(或)自定义URL.

我尝试使用AppLinks(applinks.org) - 但我无法让它工作.浏览器如何理解"al:xx:xxx .."标签?它只适用于facebook/twitter吗?

<html>
    <head>
       <meta property="al:ios:url" content="applinks://docs" />
       <meta property="al:ios:app_store_id" content="12345" />
       <meta property="al:ios:app_name" content="App Links" />
       <meta property="al:android:url" content="applinks://docs" />
       <meta property="al:android:app_name" content="App Links" />
       <meta property="al:android:package" content="org.applinks" />
       <meta property="al:web:url" content="http://applinks.org/documentation" />
   </head>
Run Code Online (Sandbox Code Playgroud)

我还尝试了另一篇文章中的一些javascript - 但如果未安装该应用程序,浏览器会显示错误:

<script>
    window.onload = function() {
        window.location = 'http://www.launchMyApp';

        setTimeout("window.location = 'http://play.google.com/someApp';", 1000);
    }
</script>
Run Code Online (Sandbox Code Playgroud)

请帮忙.谢谢.

moj*_*jo_ 5

现在,这在 iOS 9 中已成为可能。Apple 今年在 WWDC 2015 上宣布了通用深度链接。您可能想观看视频 -无缝链接到您的应用程序

现在可以:

  1. 检查应用程序是否安装并打开iOS应用程序中的内容
  2. 否则会正常失败,并且可以在 safari 中打开内容。

这是继搜索 API 之后 iOS 9 最好的功能之一。


Pat*_*icz 4

al:xx:xx:xx
Run Code Online (Sandbox Code Playgroud)

他们给你的是一个 URI(有关 URI、URN 和 URL 之间的差异,请参阅此 SO 帖子。当你的应用程序安装后,它可以注册自己以响应特定的 URL 方案。这是一个示例 Spotify URI,链接到歌曲。

spotify:track:0FutrWIUM5Mg3434asiwkp
Run Code Online (Sandbox Code Playgroud)

如果您的设备(包括台式机)上安装了 Spotify,则可以单击此链接,它应该会自动打开 Spotify 应用程序。应用程序会做出响应,因为它已将自己注册为该类型 URL 的响应者。应用程序使用 URI 的其余部分来执行某些特定操作。在这种情况下,Spotify 将 URI 识别为具有特定曲目标识符的歌曲的链接,并打开相应的屏幕。

您的应用程序可以自行注册以响应特定的 URL 方案,如果用户在安装了应用程序的情况下点击该链接,它将直接打开您的应用程序。缺点是,如果未安装应用程序,操作系统将无法理解 URL 方案,并抛出错误。

我认为您正在寻找的解决方案是指向您网站上托管的页面(脚本)的简单 HTTP 链接。您可以像普通链接一样传递参数

http://www.myapp.org/?user=123&source=email. 
Run Code Online (Sandbox Code Playgroud)

您的页面将使用一些服务器端 Javascript 来尝试打开您的应用程序指定的 URL 方案 - 类似于您上面发布的内容。如果失败,它会根据 HTTP User-Agent 标头中的浏览器信息将用户重定向到适当的应用程序商店。您可能需要一些其他 Javascript 来抑制警报。