Deep Linking(深度链接)
这里讲的Deep Linking(深度链接),在PC开发中是指指向首页的链接或是指向具体内容页的链接。在移动端开发中deep linking 则是指app 在 handle 特定 URI 的时候可以直接跳转到对应的内容页或触发特定逻辑,而不仅仅是启动 app。深度链接好处:
- 便于用户访问,提高用户体验
- 传播便捷,为营销提供了一种全新的工具
Deep Linking实现
目前处理 deep linking,主要有两种方式:
Custom URL Scheme
在 universal links 出现之前的很长一段时间里,iOS 上主要通过 custom URL scheme 来实现 deep linking,以及 app 间的通信。
在info plist里设置自定义URL后,handle URL的入口是app delegate方法 application:openURL:sourceApplication:annotation:(iOS 9 开始被 deprecate)或 application:openURL:options:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
BOOL handled = NO;
// code to handle the URL
return handled;
}
1、沙盒机制
iOS系统针对安全问题,使用了沙盒机制来保障用户的安全和隐私,但是这一机制也阻碍了应用间合理的信息共享,于是提出了URL Schemes解决办法。 沙盒机制:应用只能访问它声明可能访问的资源
。
2、URL Schemes
URL Schemes:一个可以让APP间互相跳转的协议,通过URL Schemes可以跳转到应用的具体内容页面。
3、实现方式
Universal Links (在 iOS 9 上引入了 universal links)
Universal links 的具体实现可以参考官方文档:Support Universal Links。简单来说你需要:
- 添加一个 apple-app-site-association 文件到你的网站来描述 URL 和 app 的关联。
- 添加 com.apple.developer.associated-domains entitlement 来指定要从哪些域名查询 universal links support。
- 在 app delegate 的 application:continueUserActivity:restorationHandler: 方法中 handle userActivity.webpageURL。
1、实现步骤
(1)、首先需要在developer.apple.com注册一个APP
(2)、准备一个Universal link的域名(domain)
(3)、在APP Indentifier中启用Associated Domains
(4)、在Xcode中启用Associated Domains
(5)、将 Domain信息填写到Xcode - APP Indentifier
(6)、为你的Domain申请ssl证书
(7)、创建Apple - APP - site - association Json 文件
(8)、使用ssl证书签名你的Json 文件
(9)、配置你的服务器将Json 文件上传到服务器
(10)、编写解析链接和跳转代码
Deep Linking技术支持
第三方平台
DeepShare(http://deepshare.io/):帮助开发者打破WEB和APP之间的信息壁垒,实现APP的内容直达及监测
LinkedME(https://www.linkedme.cc/):让APP不再是信息的孤岛----增强运营转化+实现流量变现