在我阅读时,iOS 9 引入了通用链接。在 Apple 的 App Search Programming Guide 的“支持通用链接”部分,它说这与使用 URL 方案的深层链接并不完全一样,但我对这个主题并不完全清楚:
最佳答案
TL,DR:
通用链接和 URL 方案之间的实际区别是什么?通用链接是否仅适用于网站、邮件或消息应用程序中的超链接?
通用链接是 Apple 特定的、基于操作系统的 URL,它将网站 URL 与应用程序特定的 URI 方案和路由相关联。它并非在所有应用程序中都可用 - 因为该应用程序必须支持该行为。有一个很好的 UL 当前工作地点/方式列表(here)。
UL 也有很多问题,我在最后概述了这些问题。请参阅下面的长文。
通用链接是否取代了 URL 方案?
不。它们是 iOS Safari 上 URI Schemes 和路由的强制替代品。你必须而且应该仍然支持你的应用程序的 URI 方案和路由,因为 Android 和 iOS Chrome 仍然使用这项技术,从归因到电子邮件的每一类主要链接供应商也是如此。
通用链接是一种深层链接吗?
是和否。通用链接本身并不是通用的深层链接——例如,它们不能通过安装过程进行路由。但是当用户拥有该应用程序时,他们可以进行深度链接。最好根据它们能做什么和不能做什么来考虑所有链接,而不是将 URL 分为“深层链接”和“非深层链接”。
许多链接表现出深度链接的行为取决于用户是否拥有应用程序和上下文(浏览器、应用程序、操作系统、操作系统版本等)。改变思维框架。
跟踪通用链接
在下面的文档中,我概述了通用链接的所有不同方面。重要的是要指出 continueUserActivity 将报告来自通用链接的引用 URL,因此您可以使用它来属性打开。
因为 UL 不是普通链接,如果您有重定向,那将破坏它。同样,如果您关闭重定向,那么您拥有的任何网站点击服务器都不会受到攻击。这是一个不同的讨论,但重要的是要注意。
如果您有兴趣,我在下面的 Universal Links 上精选了许多有用的信息。
URI 方案
大多数人都熟悉 URI 方案。 URI 是通用资源指示符 ( link )。 URI 可以分配给移动应用程序。输入 URI,例如 airbnb://将尝试在设备上定位应用程序资源 Airbnb。
在通用链接或应用链接存在之前(即在 iOS 9.3/Android 6.0 之前),需要使用“自定义 URI 方案”和 airbnb://d/listing/530250 形式的路由将用户深度链接到移动应用程序中的特定内容(在本例中为列表)。但是,这并不安全,也不能处理用户未安装应用程序的情况(没有后备)。大多数归因合作伙伴(Appsflyer、Kochava、Button、Yozio、Branch 等)的工作方式是提供一个链接来处理此问题。
当用户访问这个 URL 的页面时,会有一些 javascript 会设置一个计时器,然后尝试使用一些简单的 javascript 从浏览器启动 URI Scheme:
window.location.href(...)

https://www.airbnb.com/rooms/530250 ),旨在将用户引导到 Web 或应用程序上的最佳位置。如果用户没有该应用程序,它们旨在将用户带到移动网络,但如果用户拥有该应用程序,则将用户带到应用程序中的确切内容。在移动设备上,如果用户点击通用链接并安装了我们的应用程序,他们可能会被定向到该应用程序,否则系统将回退并将访问者登陆我们的移动网站(少数异常(exception) - 见下文)。5LL7P8E8RA.com.airbnb.app
"/rooms/*"
"/wishlists/*"
"/invite"
"NOT /rooms/*/building-rules"

关于ios - iOS 上的通用链接与深层链接(URL 方案),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35522618/
在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',
从给定URL下载文件并立即将其上传到AmazonS3的更直接的方法是什么(+将有关文件的一些信息保存到数据库中,例如名称、大小等)?现在,我既不使用Paperclip,也不使用Carrierwave。谢谢 最佳答案 简单明了:require'open-uri'require's3'amazon=S3::Service.new(access_key_id:'KEY',secret_access_key:'KEY')bucket=amazon.buckets.find('image_storage')url='http://www.ex
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问
我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新rubygems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems
我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que
这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下
我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.
我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的
我正在使用RubyonRails3.0.9,我想生成一个传递一些自定义参数的link_toURL。也就是说,有一个articles_path(www.my_web_site_name.com/articles)我想生成如下内容:link_to'Samplelinktitle',...#HereIshouldimplementthecode#=>'http://www.my_web_site_name.com/articles?param1=value1¶m2=value2&...我如何编写link_to语句“alàRubyonRailsWay”以实现该目的?如果我想通过传递一些