帮助与文档

> >

iOS 高级功能

MobLink.framework中包含有协议IMLSDKRestoreDelegate。MobLink在运行的时候,会通过这个delegate将其整个运行过程呈现出来,然而所有delegate都不是必须实现的,但是这些delegate能够帮助您实现更多自定义的操作。具体使用方式如下:

mob_setdel

接口说明
– (void)IMLSDKStartCheckScene 开始检测是否需要场景还原
– (void)IMLSDKEndCheckScene 结束检测是否需要场景还原

– (void) IMLSDKWillRestoreScene:(MLSDKScene *)scene Restore:(void (^)(BOOL, RestoreStyle))restoreHandler

即将进行场景还原(注意: 一旦实现该方法,请务必执行restoreHandler)
【如果需要自行处理scene,那么可以在restoreHandler传入NO,并自行根据 scene作自定义操作,例如自行根据scene进行控制器的跳转】RestoreStyle为场景恢复方式控制参数,可以根据需求选择Push或者Present方式,如果不需要特殊方式选择,则设为Default,系统会自动选择。
– (void)IMLSDKCompleteRestore:(MLSDKScene *)scene 完成场景恢复
– (void)IMLSDKNotFoundScene:(MLSDKScene *)scene 无法进行场景恢复(通常原因是在恢复时找不到对应的path,应检查需要恢复的控制器所实现的+MLSDKPath中返回的路径是否与生成mobid时的传入的path参数一致)

 

开始检测场景示例代码:

- (void)IMLSDKStartCheckScene
{
    NSLog(@"Start Check Scene.");
}

 

结束检测场景示例代码:

- (void)IMLSDKEndCheckScene
{
    NSLog(@"End Check Scene.");
}

 

将要进行场景恢复示例代码:

- (void) IMLSDKWillRestoreScene:(MLSDKScene *)scene Restore:(void (^)(BOOL, RestoreStyle))restoreHandler
{
    NSLog(@"Will Restore Scene - Path:%@",scene.path);

    if ([scene.path hasSuffix:@"shopping"])
    {
        [[MLDTool shareInstance] showAlertWithTitle:nil
                                            message:@"是否进行场景恢复?"
                                        cancelTitle:@"否"
                                         otherTitle:@"是"
                                         clickBlock:^(MLDButtonType type) {
                                             type == MLDButtonTypeSure ? restoreHandler(YES, Default) : restoreHandler (NO, Default);
                                         }];
    }
    else
    {
        restoreHandler(YES, Default);
    }

}

 

场景恢复完成示例代码:

- (void)IMLSDKCompleteRestore:(MLSDKScene *)scene
{
    NSLog(@"Complete Restore - path:%@",scene.path);
}

 

无法进行场景恢复示例代码:

- (void)IMLSDKNotFoundScene:(MLSDKScene *)scene
{
    //根据scene可以对错误做一些检查或调整
    NSLog(@"Not Found Scene - Path:%@", scene.path);
}