Universal Links

      众所周知,微信屏蔽了大部分在其webView内URL Scheme的跳转,因此,如果想要在微信内跳转至app的话,有两种做法:

1.使用微信的api:WXAppExtendObject:

2.使用Universal Links

Universal Links:

当用户点击某个支持了Universal links的链接,iOS系统会直接不经过safari跳转到相应的app,如果相应的app没有安装的话,就会在safari打开这个链接。

那么如何添加对universal links 的支持呢?

1.首先,创建一个包含了app可以处理的URLs的JSON 数据文件:apple-app-site-association。

tips:包含不同内容的域名需要分别创建不同的apple-app-site-association文件,假如app在iOS 9.3.1 或更新的版本下运行,不管这个文件有没有签名,压缩之前的apple-app-site-association文件必须小于128k,apple-app-site-association文件不要加.json的后缀名。

apple-app-site-association:

Universal Links_第1张图片
apple-app-site-association

上图为apple-app-site-association的一个例子,必须按照这样的格式来编写apple-app-site-association,“apps”是一个空数组,但是必须写出,“details”对应的值是一个包含着字典的数组,每个字典对应一个支持universal links的app。而每一个字典又包含了一个“appID”还有一个“paths”。“appID”:Team ID.Bundle ID,“paths”是一个包含了支持以及不支持universal links的网址域名的数组,不支持的域名之前需要添加NOT ,先后顺序决定了优先级的高低。

其中:

*代表了整个网址域名都支持Universal Links,具体的URL,比如/wwdc/news/则指定了特定的链接支持Universal Links,在URL后添加*,比如/videos/wwdc/2015/*,代表符合这样格式的链接支持Universal Links,添加paths的时候注意区分大小写。

2.将创建好的apple-app-site-association文件上传到服务器,可以将此文件放置在服务器的根目录下,或者放在.well-known这个子目录中。

如https:///apple-app-site-association 或者 https:///.well-known/apple-app-site-association. 另:iOS 10以后苹果强制使用HTTPS。

接下来,就是在app中处理universal links了。

3.让客户端支持universal links。


Universal Links_第2张图片
在此处添加支持Universal links的域名

首先,把apple-app-site-association里paths的域名添加到Xcode里。当你第一次运行你的app的时候,app会将apple-app-site-association从服务器下载下来。

然后,为了让app支持Universal Links,你还需要在AppDelegate里实现application:continueUserActivity:restorationHandler:这个方法,处理回调。

你可能感兴趣的:(Universal Links)