创build移动应用程序的深层链接

我想为我的应用程序创build一个促销链接 – 我可以通过电子邮件分发。 当用户点击电子邮件中的链接时,网页会这样做:

  1. 确定哪个操作系统(iOS或Android)
  2. 如果应用程序安装在设备上 – 打开应用程序
  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> 

我也尝试了一些来自另一个post的JavaScript – 但是如果应用程序没有安装浏览器显示错误:

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

请帮忙。 谢谢。

Solutions Collecting From Web of "创build移动应用程序的深层链接"

现在,iOS 9已经可以实现了。今年,WWDC在2015年宣布了深度链接。您可能需要观看video – 无缝链接到您的应用程序 。

现在可以:

  1. 检查是否安装了应用程序并在iOS应用程序中打开内容
  2. 否则优雅失败,可以打开Safari浏览器中的内容。

searchAPI之后的iOS 9的最佳function之一。

 al:xx:xx:xx 

他们给了你的是一个URI(请参阅这个post,了解URI,URN和URL之间的区别,当你的应用程序被安装的时候,它可以注册自己以响应某个URL-scheme,下面是一个Spotify URI的例子,歌曲。

 spotify:track:0FutrWIUM5Mg3434asiwkp 

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

您的应用程序可以注册自己以响应特定的URLscheme,如果用户点击该应用程序安装的链接,它将直接打开您的应用程序。 缺点是,如果应用程序没有安装,操作系统将不理解URLscheme,并抛出一个错误。

我认为你正在寻找的解决scheme将是一个简单的HTTP链接到您的网站上托pipe的页面(脚本)。 你可以像传统的链接那样传递参数

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

你的页面会使用一些服务器端的Javascript,试图打开你的应用程序指定的URLscheme – 类似于你在上面发布的内容。 如果失败,则会根据HTTP User-Agent头中的浏览器信息将用户redirect到相应的app store。 你可能需要一些其他的Javascript来压制警报。

我正在为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 meta标签,它没有任何javascript的redirect,并且在所有主stream浏览器上都支持。

你可能要考虑尝试Yozio – 他们做你所要求的,再加上一点点。 我不附属,只是简单地玩它。