如何实现DeepLinking如果用户没有应用程序呢?

我有3个需求DeepLinking或通用链接到我的项目。

  1. 如果用户有应用程序,则UR​​L应该redirect到包含内容的应用程序。
  2. 如果用户没有应用程序,那么它应该redirect到Appstore。
  3. 如果用户没有应用程序,那么它应该redirect到Appstore,下载应用程序后,它应该与我正在用URL发送的数据去那个页面。

我遵循的链接:

  1. https://www.raywenderlich.com/128948/universal-links-make-connection
  2. https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html 。
  3. http://swiftdeveloperblog.com/deep-linking-using-custom-url-scheme/ 。
  4. http://blogs.innovationm.com/deferred-deep-linking-in-ios-with-universal-link/
  5. https://developer.apple.com/documentation/security/shared_web_credentials/preparing_your_app_and_website_to_share
  6. http://www.brianjcoleman.com/tutorial-deep-linking-in-swift/ 。

我所理解的是:

创build和上传关联文件,为此我必须遵循一些步骤:

增加对通用链接的支持是很容易的。 有三个步骤你需要采取:

创build一个apple-app-site-association文件,其中包含有关您的应用可以处理的URL的JSON数据。 将apple-app-site-associationfile upload到您的HTTPS Web服务器。 您可以将该文件放在服务器的根目录或.well-known子目录中。 准备您的应用程序来处理通用链接。

创build和上传关联文件

要在您的网站和您的应用程序之间build立安全连接,您需要在它们之间build立信任关系。 你build立这种关系分为两部分:

您添加到网站的Apple-app-site-association文件添加到您的应用的com.apple.developer.associated-domains权利

准备您的应用程序来处理通用链接。
在您的com.apple.developer.associated-domains权利中,包含应用程序想要作为通用链接处理的域列表。 要在Xcode中执行此操作,请打开Capabilities选项卡中的Associated Domains部分,并为您的应用支持的每个域添加一个条目,并以applinks为前缀,如applinks:www.mywebsite.com。

问题是:我遵循所有步骤,我有一个url,我把它添加到我的关联域的域中。

例如: https://<My_Domain>/anything 。 现在后端正在生成URL和发送。

我们正在使用Http服务器。

例:

 Route::get('appstore',function(){ return redirect()->away('https://itunes.apple.com/in/app/whatsapp-messenger/id310633997?mt=8');}); 

问题是当我点击那个URL我没有得到任何popup已经应用程序,也下载后,我将得到的数据?

我错过了什么或后端缺less的东西?

因此,您似乎正在尝试完成延迟深层链接 ,这意味着如果安装了应用程序,则将用户路由到内容,或者将用户路由到app store以下载应用并在应用打开后显示内容。 这是很难做的,我会稍微解释一下。

看起来你正在build立你的通用链接,但redirect到应用程序商店是相当hacky。 通用链接是为了将用户redirect到networking版本,这意味着把它们带到app store,而不是一件容易的事情。

如果确实让用户访问应用程序商店,那么在安装应用程序之后将延期的深层链接指向内容几乎是不可能的 ,而无需使用Branch等第三方服务。 如果这是您所需要的用户体验,Branch还会允许您将用户推回到app store下载应用。

希望这可以帮助!