导读:如何让App的每个页面/服务能够像Web Page那样被发现、管理和监测?如何基于特定的情景让移动端用户能够在各个App之间进行无缝的唤醒切换?如何利用Growth Hacking的理念提高app的用户和留存?如何评估App的某个具体页面/服务的传播效果?我们将在持续分享以增长为主题的系列干货文章中为您一一解读,本期魔窗萌妹子程序媛刘家飞教你如何在App中用Universal links跨越微信屏蔽,在微信中直接唤醒第三方App。
Apple为iOS 9发布了一个所谓的通用链接的深层链接特性,即Universal links。虽然它并不完美,但是这一发布,让数以千计的应用开发人员突然意识到自己的应用体验被打破。
魔窗推出了mLink ,为了打破App孤岛格局,构建情景式的服务链,大幅提升用户体验,让每一次的连接都产生价值。
什么是Universal links?
Universal links,一种能够方便的通过传统的HTTP/HTTPS 链接来启动App,使用相同的网址打开网站和App。
试想一下,通过唯一的网址,一个用户点击可以链接到你网站的网址,当App已经被安装的时候,直接无缝的重定向到App中而不是打开 Safari,当用户没有安装App的时候,直接在Safari中打开链接,通过这个唯一的网址还可以链接到您App中某个特定的视图,而不是特别的URL Schemes。这种用户体验是不是相当的棒?
相较custom URL Schemes, Universal links的好处
(1)不同的App是可以定义相同的custom URL Schemes的,所以会存在抢占或者冲突的问题,而Universal links使用标准的HTTP/HTTPS,所以不存在上述问题。
(2)custom URL Schemes在没有安装App的情况下是无法直接打开的,而Universal links本身是一个HTTP/HTTPS 链接,所以在没有安装App的情况下,可以用Safari打开相应的webView 。
在微信中打开Universal link ,并且App未安装的情况下:
在微信中打开custom URL Schemes,并且 App 未安装的情况下:
(3)在 App 已安装的情况下,在微信中点击跳转链接,custom URL Schemes是无法直接打开App的,因为微信屏蔽了custom URL Schemes的跳转,而Universal links由于其本身是HTTP/HTTPS 链接的优势,可以跳出微信的屏蔽,直接从微信中跳转并打开相应的App。
在微信中打开Universal link ,并且App已安装的情况下:
在微信中打开customURL Schemes,并且App已安装的情况下:
(4)Universal links可以使用相同的网址打开网站和 App。
(5)Universal links支持从其他App的MKWebView或UIWebView中跳转到目标 App。
(6)Universal links本身可以被搜索引擎索引。
Universal links的具体实现
实现Universal links不难,但是也有一些门槛:
有一个注册的域名
通过 SSL 访问域名
支持上传一个JSON文件到你的域名
至少iOS 9+
至少Xcode 7 beta 2
(1)添加一个apple-app-site-association文件到你的网站来描述 URL 和 App 的关联。
该文件必须存在且为了安全原因需要使用SSL 通过 GET 请求访问到。
在你的apple-app-site-association文件中,是需要写一个简单的JSON格式,比如:
{
“applinks”: {
“apps”: ],
“details”:
{
“appID”:“9JA89QQLNQ.com.apple.wwdc”,
“paths”: “/wwdc/news/",“/videos/wwdc/2015/"]
},
{
“appID”:“TeamID.BundleID2”,
“paths”: “" ]
}
]
}
}
(2)添加Associated Domains来指定要从哪些域名查询Universal link support。在Xcode的capabilities 里添加你的App域名,必须用applinks前置它。
(3)在App delegate的application:continueUserActivity:restorationHandler: 方法中handleuniversal links
魔窗mLink对Universal links的支持
魔窗除了对custom URL Schemes之外,同时也对Universal links进行了支持。
如果App已经配置了Universal links ,只需要在魔窗后台添加相应的Universal links即可;
如果App没有配置Universal links ,那么只需要提供Team ID 和Bundle ID,魔窗为App提供Universal links服务。
近期魔窗团队将继续提供一系列文章,文章的主题将涵盖但不限于:
App 服务化的最佳实践和场景;
GrowthHacking的最佳实践;
结合魔窗的mLink功能谈谈Deep Link的技术细节;
魔窗相关产品的功能点介绍和技术细节;
……
刘家飞(花名:加菲喵)
魔窗iOS工程师
程序猿中的萌妹子,专注于iOS开发技术,至理名言:吃得下的,别留到明天。