导读:如何让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服务。