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

时间:2015-02-23 23:21:07

标签: android ios redirect deep-linking applinks

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

  1. 确定哪个操作系统(iOS或Android)
  2. 如果应用安装在设备上 - 打开应用
  3. 否则 - 将用户带到AppStore(或)PlayStore(或)自定义URL。
  4. 我尝试使用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>
    

    我还尝试了其他帖子中的一些javascript - 但如果未安装该应用,则浏览器显示错误:

    <script>
        window.onload = function() {
            window.location = 'http://www.launchMyApp';
    
            setTimeout("window.location = 'http://play.google.com/someApp';", 1000);
        }
    </script>
    

    请帮助解决这个问题。 感谢。

4 个答案:

答案 0 :(得分:4)

现在可以在iOS 9中实现。苹果今年在WWDC 2015上宣布了Universal深度链接。您可能希望观看视频 - Seamless Linking to Your App

现在可以:

  1. 检查是否已安装应用并在iOS应用中打开内容
  2. Else优雅地失败,可以在safari中打开内容。
  3. 搜索API之后iOS 9的最佳功能之一。

答案 1 :(得分:3)

al:xx:xx:xx

他们给你的是一个URI(见This SO post for the differences between URIs, URNs, and URLs。安装你的应用程序后,它可以注册自己以响应某个URL方案。这是一个链接到一首歌的Spotify URI示例。

spotify:track:0FutrWIUM5Mg3434asiwkp

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

您的应用可以注册自己以响应特定的网址方案,如果用户点击该链接并安装了应用,则会直接打开您的应用。缺点是,如果没有安装应用程序,操作系统将无法理解URL方案,并抛出错误。

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

http://www.myapp.org/?user=123&source=email. 

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

答案 2 :(得分:1)

我正在为Facebook工作,发现当你have them host the app links page for you时,他们的系统会生成以下内容。

<html>
<head><title>App Link</title>
    <meta property="fb:app_id" content="XXXXXXXXXXXXXXX"/>
    <meta property="al:ios:url" content="example://test"/>
    <meta property="al:ios:app_name" content="Example App"/>
    <meta property="al:ios:app_store_id" content="XXXXXXXXX"/>
    <meta property="al:android:package" content="com.example.client"/>
    <meta property="al:android:app_name" content="Example App"/>
    <meta property="al:android:url" content="example://test"/>
    <meta property="al:web:should_fallback" content="false"/>
    <meta http-equiv="refresh" content="0;url=http://play.google.com/store/apps/details?id=com.example.client"/>
</head>
<body>Redirecting...</body>
</html>

您可以在底部看到http-equiv元标记,它可以在没有任何javascript的情况下进行重定向,并且在所有主流浏览器上均受支持。

答案 3 :(得分:0)

您可能需要考虑尝试Yozio - 他们会按照您的要求加上更多内容。我没有隶属关系,只是简单地玩过它。