Deep Linking

Deep linking 是指 mobile app 在 handle 特定URL的时候可以直接跳转到对应的内容页或触发特定逻辑,而不仅仅是启动 app。

驱动力

  • 判断是否已经安装了 app,如果已经安装了直接 deep link 到 app,否则跳转 App Store。(For 跳转app分享,app互推)
  • 用户匹配(user matching),如何把一个 install 对应到某一次 web page view 或者某一次 click。 (For 增长团队统计,如FaceBook推广)
  • 机内机外推送,跳转新功能界面or功能活动页 (For 运营)
  • 增加产品的安装量覆盖率,用户转化率;
  • 对于产品内部也可以添加对应的协议的实现,已达到功能推广转化的收益;

URL Scheme

iOS SDK支持,Application与自定义的URL Scheme绑定,通过在浏览器或者其他应用中启动这个App;

To enable deep linking, go to the Info tab in the Xcode project. In the URL Types section, click on the + button, and then add an identifier and a URL scheme< appID://  be sure to open the scheme in safari >

在*-Info.plist中添加一行选择URL types;添加自定义的identifier和URL scheme,一般推荐使用 com.x.x 和 appID://; scheme 不用加://

外部打开App, 需要在自己URL Types中增加URL Scheme ;
而我们App内需要打开别的App, 则要添加 LSApplicationQueriesSchemes(白名单)

  • 在Safari中键入 appID:// 启动app
  • [[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]]; 跳转appstore或打开app分享等

9.0 以下系统处理逻辑
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;
外部链接接口方式跳转进入App处理 >= 9.0
- (BOOL)application:(UIApplication *)app openURL:(NSURL )url options:(NSDictionary, id> *)options;

协议解析
The format of the url is as follows: [scheme]://[host]/[path]
通过sourceApplication判断application,然后通过scheme判断自定义scheme,最后通过不同的协议头【path】进行对应的处理;

参考

Custom URL Schemes

Deep Linking in iOS

延迟深度链接

你可能感兴趣的:(Deep Linking)