下载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 identifierURL 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是我须要复原的控制器,在外面增加
#import <MobLinkPro/MLSDKScene.h>#import <MobLinkPro/UIViewController+MLSDKRestore.h>@property (nonatomic, strong) MLSDKScene *scene;//实现带有场景参数的初始化办法,并依据场景参数还原该控制器:-(instancetype)initWithMobLinkScene:(MLSDKScene *)scene{ if (self = [super init]) { self.scene = scene; } return self;}
获取MobId
将其用于分享。在场景数据还原时MobLink会依据MobId还原出场景数据,并回调给用户进行特定的操作
(留神:MobId不是必须要用的,比方应用的场景是从网页跳转到App里的时候所有参数齐全来源于网页上的时候,这时是不须要获取的MobId的,只须要在前端网页上js初始化的时候写上必要的参数就能够了。这个MobId实用于个别从App分享链接进来的时候有些参数是在App内指定的,比方分享者的id等等,此时就须要通过这个MobId来携带着客户端的参数到网页上转悠一圈,而后从网页跳转回App的时候又返回给App这样。)
- (void)getMobId{ // 结构自定义参数(可选) NSMutableDictionary *customParams = [NSMutableDictionary dictionary]; customParams[@"key1"] = @"value1"; customParams[@"key2"] = @"value2"; // 依据门路、起源以及自定义参数结构scene(3.0.0以下版本) //MLSDKScene *scene = [[MLSDKScene alloc] initWithMLSDKPath:@"控制器对应的门路" source:nil params:customParams]; // 依据门路、自定义参数结构scene (3.0.0以上版本,举荐) MLSDKScene *scene = [MLSDKScene sceneForPath:@"已在Mob后盾配置的须要还原的控制器对应的门路" params:customParams]; // 申请MobId __weak typeof(self) weakSelf = self; [MobLink getMobId:scene result:^(NSString *mobId, NSString *domain, NSError *error) { weakSelf.mobid = mobId; NSString *msg = mobId == nil ? @"获取Mobid失败" : @"获取Mobid胜利"; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提醒" message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; }];}
参数阐明
- 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办法中减少
#import <MobLinkPro/IMLSDKRestoreDelegate.h>#import <MobLinkPro/MobLink.h>#import <MobLinkPro/MLSDKScene.h>@interface AppDelegate ()<IMLSDKRestoreDelegate>- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 设置MobLink代理 [MobLink setDelegate:self]; //必须增加代理 return YES;}
(2)实现场景还原回调(此回调里可获取到对应参数,能够自行获取参数做解决)
- (void) IMLSDKWillRestoreScene:(MLSDKScene *)scene Restore:(void (^)(BOOL, RestoreStyle))restoreHandler{ NSLog(@"path---%@",scene.path); NSLog(@"rawURL---%@",scene.rawURL); NSLog(@"params---%@",scene.params); NSLog(@"mobid---%@",scene.mobid); restoreHandler(YES, Default);}
Web集成
在开发者后盾找到MobLink的页面配置 栏,在 援用JS文件 选项卡中,点击 一键复制 将JS代码复制到您本人写的前端页面中,加到script中执行即可
其中path 的值需与后盾 路由配置 的 渠道标识 填写统一params可传本人自定义参数以上集成好,即可实现场景还原整个流程。