iOS 端如何实现 MobLink 的场景还原功能
下载 SDK
1.登录官网
2.点击这里 下载 SDK
勾选 Moblink,点击下载
导入 SDK
1.将整个 SDK 文件,里面 MobLinkPro.framework,MOBFoundation.framework 拖到项目中,如下图:
勾选如下 3 项
添加依赖库
选择项目 Target - Build Phases - Link Binary With Libraries,然后选择“+”进行添加系统库:
libsqlite3
libz1.2.5
libc++
Mob 后台与项目配置
(1)如下,点击进去自己注册的应用,会看到 MobLink 下面的基础配置项,如下图:
Universal Link (必填,我们已生成可以直接用我们生成的):强烈建议使用 Mob 自动生成的 Universal Link。iOS 9.0 及以上使用 Universal Link 能优化场景恢复过程,提供更好的用户体验。选择并使用我们帮您生成的 Universal Link 并正确配置到您的项目中,将为您节省大量工作和时间。项目里配置如下:
Team ID (必填):开发团队的 ID,可在苹果开发者后台查看:
Bundle ID (必填):项目唯一标识。请务必与项目中保持一致。可见于项目 Info.plist 文件的 Bundle identifier
URL Scheme (必填):在后台填写格式如:XXX:// (前面任意,后面必须要带://),请务必与项目中的配置保持一致,否则可能会导致无法跳转应用,项目里配置不带://,如下图:
下载/引导地址 (必填):应用在 App Store 的下载地址,或者是其他第三方托管地址,没有安装 app 会跳转到这里来下载 app
App Store 下载地址 (选填):专业版有效,经典版无效,在这里配置了的话,会略过我们的下载引导界面,直接跳 App Store 下载 app
应用宝下载链接 :安卓需要,iOS 不需要填写
有效时间 :这个时间是点开链接后开始计时的,超过这个时候后,点击"打开 app"无法成功场景恢复,建议设置为 60 分钟,测试阶段可自行修改以查看效果,设置为 0 时不进行场景恢复。
(2)路由配置(必须)
渠道标识:填写还原路径,如"/demo/a","/demo/b“等,这个填写的值需要与前端 JS 里传的 path 的值一致;
iOS 页面名称:填写跳转到 app 需要恢复的控制器的名称,如果不填写无法走客户端的场景还原的回调获取参数等
(3)配置 ATS
1.在项目的 info.plist 中添加 App Transport Security Settings,类型为字典类型
2.给它添加一个 Key:Allow Arbitrary Loads,类型为 Boolean 类型,值为 YES;
初始化 SDK
在项目中的 info.plist 文件中添加键值对,键分别为 MOBAppKey 和 MOBAppSecret ,值为在之前在 MobTech 官网开发者后台申请的 appkey 和 appSecret(注意:配置后需要保存好,看下项目 Info 选项里是否存在 )
场景接口调用
在需要恢复的控制器中实现 UIViewController+MLSDKRestore 的方法
例如在 MLDNewsDetailTableViewController.m 是我需要恢复的控制器,在里面添加
获取 MobId
将其用于分享。在场景数据还原时 MobLink 会根据 MobId 还原出场景数据,并回调给用户进行特定的操作(注意:MobId 不是必须要用的,比如使用的场景是从网页跳转到 App 里的时候所有参数完全来源于网页上的时候,这时是不需要获取的 MobId 的,只需要在前端网页上 js 初始化的时候写上必要的参数就可以了。这个 MobId 适用于一般从 App 分享链接出去的时候有些参数是在 App 内指定的,比如分享者的 id 等等,此时就需要通过这个 MobId 来携带着客户端的参数到网页上转悠一圈,然后从网页跳转回 App 的时候又返回给 App 这样。):
参数说明
path 本次生成的 mobid 所对应的控制器唯一路径,即在 Mob 后台配置的需要还原的控制器对应的渠道标识。在场景还原时(即客户端还原网页内容)会返回 path 对应的类名或者根据 path 寻找匹配的控制器进行还原
source 来源标识,可用于在场景还原时辨别来源,例如:传入一个当前控制器名称。(3.0.0 版本后,废弃)
params 字段类型,此时传入的字典数据,在场景还原时能够重新得到,例如:传入一些回复控制器时需要的参数
回调值说明
mobid 生成的 mobid 可用于拼接到需要进行推广的链接后 例如:http://www.abc.com/?mobid=123456 注意:该网站页面必须集成了 JS 模块的代码(下文将说明),方可实现网页-应用无缝接合。
domain domain 拼接 mobid 使用,无网页跳转方式(domain 其实就是后台生成的 Universal Link)。例如:https://7ne9.t4m.cn/NBjqIj (这种方式目前因为兼容性问题,暂不维护,建议不要用)
场景还原
(1)设置代理
MobLink 在运行的时候会通过 delegate 将整个运作过程呈现出来,所有的 delegate 方法都不是必须实现的,但这些 delegate 能够帮助您实现更多自定义的操作。设定 delegate 对象的方法如下图:
在 app 启动的 didFinishLaunchingWithOptions 方法中增加
(2)实现场景还原回调(此回调里可获取到对应参数,可以自行获取参数做处理)
Web 集成
在开发者后台找到 MobLink 的** **页面配置 栏,在** **引用 JS 文件 选项卡中,点击 一键复制 将 JS 代码复制到您自己写的前端页面中,加到 script 中执行即可
其中 path 的值需与后台 路由配置 的 渠道标识 填写一致
params 可传自己自定义参数
以上集成好,即可完成场景还原整个流程。
评论