9

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

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

我尝试使用 AppLinks (applinks.org) - 但我无法让它工作。浏览器如何理解“al:xx:xxx..”标签?它只适用于脸书/推特吗?

<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

3 回答 3

4
al:xx:xx:xx

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

spotify:track:0FutrWIUM5Mg3434asiwkp

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

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

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

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

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

于 2015-06-22T23:27:23.587 回答
4

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

它现在可以:

  1. 检查是否已安装应用并在 iOS 应用中打开内容
  2. Else 会优雅地失败,并且可以在 safari 中打开内容。

继 Search API 之后 iOS 9 的最佳功能之一。

于 2015-06-27T23:18:23.627 回答
1

我正在为 Facebook 做这件事,发现当您让他们为您托管应用链接页面时,他们的系统会生成以下内容。

<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 即可进行重定向,并且在所有主要浏览器上都受支持。

于 2015-06-24T21:27:49.017 回答