Deep Linking(深度链接)
补充–Deep Linking打破APP信息孤岛(Deep Linking打破APP信息孤岛)
这里讲的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;
}
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。
Deep Linking技术支持
第三方平台DeepShare(http://deepshare.io/):帮助开发者打破WEB和APP之间的信息壁垒,实现APP的内容直达及监测