深度链接简介
深度链接又名“DeepLink”,是一种允许用户直接从网页跳转到移动应用内特定页面的链接。它通过 URL Scheme 或 Universal Links(通用链接)实现,使得用户能够像访问网页一样访问APP内的深层内容,提升用户体验和内容可发现性。
深度链接触发的场景主要分为两种:
- 用户已安装App情况下:在网页点击链接,可以直接跳转到App指定页面
- 用户未安装App情况下:在网页点击链接,会先跳转应用商店,下载后首次打开App,自动跳转到指定页面
深度链接实现方式
移动端实现深度链接的本质就是 URL映射,将特定的URL与应用内的功能或页面进行关联,当访问URL时打开对应的功能和页面。
1.URL Scheme
URL Scheme 是出现较早的深度链接方式,适用于 iOS 和 Android,兼容性高也相对简单,只需要在App内注册 URL Scheme 就可以在web端 通过对应的协议打开App。
URL Scheme协议格式:
scheme://path?query
- scheme:协议名称,可自定义
- path:想要跳转的页面路径
- query:页面路径传递的参数
限制:
- 依赖于平台或浏览器限制,如微信中打开的网址微信没有开放能力无法直接打开
- App本身需要有对应页面路径及参数解析和跳转操作
2.Universal Links
Universal Link 是 iOS 9 以后苹果推出的 通用链接技术,通过一个https链接来打开App指定页面,无需通过Safari及额外的判断,没有安装App则跳转到自定义地址。
相对Scheme,Universal Link是一个Web Link使用上更简单:
- 当用户已安装该App时,无需加载任何页面以及判断即可唤醒App,用户未安装App,则跳转对应的下载页面。
- Universal Links 支持从其他App中的 WKWebView 和 UIWebView 中跳转到目标App
- 配置相对复杂一些
Mob官网
官网地址:mob.com
文档地址:mob.com/wiki/detail…
MobLink限制
深度链接功能只能在浏览器中使用,微信浏览器中无法直接拉起
接入流程
1.注册/登录账号
进入官网输入账号及密码注册登录
2.创建应用
2.1.【应用概览】->【创建应用】上传logo,填写应用名称后点击【确定】,创建完应用后选择【MobLink】集成
2.2.应用配置
平台做了校验,配置不正常会出现各种问题,确保一次配置正确
2.3.应用配置完成后,在应用【概览】中获取应用 AppKey 和 AppSecret
2.4.配置渠道,该渠道与web触发深度链接的path路径一致
3.项目配置
在项目Info.plist 中新建 “MOBAppKey”和“MOBAppSecret”并填入平台上的AppKey 和 AppSecret
在项目 【Target】-> 【Signing & Capabilities】-> 【Associated Domains】添加平台创建的 Universal Link
在项目 【Target】-> 【Info】-> 【URL Types】添加与平台应用配置一致的 URL Scheme
4.注册代理
在 AppDelegate 中注册 MobLink 代理
#import <MobLinkPro/IMLSDKRestoreDelegate.h>
#import <MobLinkPro/MobLink.h>
#import <MOBFoundation/MobSDK+Privacy.h>
#import <MobLinkPro/MLSDKScene.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate,IMLSDKRestoreDelegate>
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 设置MobLink 代理
[MobLink setDelegate:self];
// 同意隐私政策后上报隐私协议
[MobSDK uploadPrivacyPermissionStatus:YES onResult:nil];
}
// 场景还原delegate
- (void)IMLSDKWillRestoreScene:(MLSDKScene *)scene Restore:(void (^)(BOOL, RestoreStyle))restoreHandler {
if (scene.params) {
NSDictionary *params = scene.params;
// 处理场景还原操作
}
restoreHandler(YES, MLDefault);
}
@end
5.web接入
平台上应用【页面配置】-> 【引用JS文件】拷贝所有内容到web项目,配置path和参数即可
友情提示
见原文:【三方SDK】MobLink深度链接)
本文同步自微信公众号 "程序员小溪" ,这里只是同步,想看及时消息请移步我的公众号,不定时更新我的学习经验。