App服务化, 10倍增长,你想知道的都在这里了!

624 查看

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未安装的情况下:
听萌妹纸说,如何在微信中直接唤醒第三方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服务。