> >

1. iOS 快速集成

 

1. 在项目中添加SDK(如果使用CocoaPods集成请忽略此步骤)

i. 将MobLink.framework,MOBFoundation.framework添加到项目中,如下图:

mob_addsdk

ii. 选择将文件夹复制到项目中,如下图:

mob_copy

iii. 添加依赖库

mob_lib

选择项目Target-Build Phases-Link Binary With Libraries,然后选择“+”进行添加系统库:

  • libsqlite3
  • libz1.2.5
  • libstdc++
  • libicucore

2. 配置URL Scheme、Universal Link及App右上角跳转链接

i. URL Scheme

项目中需要配置URL Scheme以用于场景恢复时跳转到应用中这里的scheme要唯一确定,不要与其他应用一致,建议使用项目名称作为scheme。请参考下图配置您自己的URL Scheme:

mob_url

这里所配置的务必与后台填写的一致,如下图:

Snip20170412_3

ii. Universal Link

请先在后台开启“是否使用Mob生成的Universal Link”的开关,此时您将看到如下图所示的Universal Link:

Snip20170412_1

然后在项目中配置Universal Link,请务必填写后台生成的Universal Link地址 (建议直接从管理后台拷贝)参考下图:

Snip20170412_2

 

关于是否使用Mob生成的Universal Link的说明:我们提供了您使用自己的universal link的方式,您只要将此开关关闭,同时填入您自己的正确的universal link(https://开头)就可以了。但是由于universal link服务的复杂性,所以建议使用Mob提供的universal link服务。

iii. App右上角跳转链接

这一项的配置是为了更好的体验universal link带来的便利性服务。当我们从网页端通过universal link跳转到App中的时候,右上角会出现类似于如下图所示的按钮:

Snip20170412_4

 

点击该按钮时会跳转Safari打开一个链接,当您在这里填写了要打开的链接时,每次点击它都会打开您填写的链接,当然,这里您也可以不填写,那么它会自动打开您跳转App之前的网页链接。填写示例如下图:

Snip20170412_5

3. 添加代码

i. 在AppDelegate.m文件中导入头文件#import <MobLink/MobLink.h> 并在didFinishLaunchingWithOptions:方法中初始化SDK,并传入之前获得的APPKey,代码如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 初始化SDK
    [MobLink registerApp:@"你的APPKey"];

    return YES;
}

ii. 在需要恢复的控制器.m文件中导入头文件#import <MobLink/UIViewController+MLSDKRestore.h>和#import <MobLink/MLSDKScene.h>并实现UIViewController+MLSDKRestore 的两个方法:

第一个是实现标识控制器路径的方法:

+ (NSString *)MLSDKPath
{
    // 返回一个属于此控制器的特殊路径
    return @"/demo/a";
}

第二个是实现带有场景参数的初始化方法,并根据场景参数还原该控制器:

- (instancetype)initWithMobLinkScene:(MLSDKScene *)scene
{
    if (self = [super init])
    {
        self.scene = scene;
    }
    return self;
}

关于实现带有场景参数初始化方法的补充:

i. 如果您的控制器采用xib的方式来初始化的,那么实现该初始化方法时请参考如下代码:

- (instancetype)initWithMobLinkScene:(MLSDKScene *)scene
{
    // 使用xib进行初始化
    if (self = [super initWithNibName:@"xib 名称" bundle:nil])
    {
        self.scene = scene;
    }
    return self;
}

ii. 获取MobId,在需要获取MobId的.m文件中导入头文件#import <MobLink/MobLink.h>并参考如下代码获取MobId

- (void)getMobId
{
    // 构造自定义参数(可选)
    NSMutableDictionary *customParams = [NSMutableDictionary dictionary];
    customParams[@"key1"] = @"value1";
    customParams[@"key2"] = @"value2";
    // 根据路径、来源以及自定义参数构造scene
    MLSDKScene *scene = [[MLSDKScene alloc] initWithMLSDKPath:@"控制器的特殊路径" source:@"来源信息,如:uuid-123456" params:customParams];
    // 请求MobId
    __weak typeof(self) weakSelf = self;
    [MobLink getMobId:scene result:^(NSString *mobId) {
        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所对应的控制器唯一路径,即上述第2点中所提及的+ MLSDKPath方法返回的路径。在场景还原时(即客户端还原网页内容)会根据path寻找匹配的控制器进行还原。
source 来源标识,可用于在场景还原时辨别来源,例如:传入一个当前控制器名称。
params 字段类型,此时传入的字典数据,在场景还原时能够重新得到,例如:传入一些回复控制器时需要的参数。
回调值说明
mobid 生成的mobid可用于拼接到需要进行推广的链接后,例如:http://www.abc.com/?mobid=123456注意:该网站页面必须集成了JS模块的代码(下文将说明),方可实现网页-应用无缝接合。

 备注:如果您的页面参数固定,则可以将获取到的这个mobid缓存起来,不用每次都去获取新的mobid以节约时间成本。

到此,最简单的MobLink就集成好了,打开上述集成好JS模块并带有mobid的链接即可跳转到您的APP并自动恢复到您实现了恢复方法的控制器中。请注意:如果您的APP中带有导航控制器(UINavigationController),则恢复时MobLink会采用Push的方式,但是如果您的APP中没有导航控制器,则恢复时MobLink会采用Modal的方式,此时就需要您自行dismiss恢复出来的控制器了。

 

2.Web快速集成

 

Web快速集成

在后台找到JS引入模块,点击“复制”来复制代码内容。如下图所示:

Snip20170301_11

随后直接在页面引入文件,并且调用初始化方法。代码如下:

<script type="text/javascript" id="-moblink-js" src="//f.moblink.mob.com/moblink.js?appkey=您的appKey"></script>
<script type="text/javascript">
    MobLink.init();
</script>

详细参数内容请参阅:Web高级功能