美文网首页
Universal Link ---iOS

Universal Link ---iOS

作者: 奋斗的小马达 | 来源:发表于2020-02-27 15:18 被阅读0次

关键词:Universal Link 、iOS、MobLink

什么是Universal Link?
http://www.mob.com/wiki/detailed?wiki=Moblink_ios_UL_three&id=34

一、申请账号(官方文档很清楚)
http://www.mob.com/wiki/list

二、MobLink后台配置


WechatIMG398.jpeg

以上后台配置基本完成

二、工程配置

1、使cocoapods导入,手动导入没研究。

  pod 'mob_linksdk_pro'

参考官方文档即可

2、配置工程
a、infoplist里面增加两个键值对 MOBAppKey 和 MOBAppSecret 这俩对应的值在mob后台产品管理可以拿到。

b、设置Associated,如下图 3991582789625_.pic_hd.jpg

c、设置URL Types如图


4001582792979_.pic_hd.jpg

3、代码

获取mobid
- (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:@"AUXSmartHome/Modules/UserCenter/Controllers/UserCenter/AUXUserCenterViewController" params:customParams];

    // 请求MobId
    __weak typeof(self) weakSelf = self;
    [MobLink getMobId:scene result:^(NSString *mobId, NSString *domain, NSError *error) {
        weakSelf.mobid = mobId;

        NSLog(@"获取当前的ID:%@",mobId);
        NSString *msg = mobId == nil ? @"获取Mobid失败" : @"获取Mobid成功";
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
        [alert show];
    }];
}



//即将进行场景还原示例代码
- (void) IMLSDKWillRestoreScene:(MLSDKScene *)scene Restore:(void (^)(BOOL, RestoreStyle))restoreHandler
{
NSLog(@"Will Restore Scene - Path:%@",scene.path);

}

//场景恢复完成示例代码
- (void)IMLSDKCompleteRestore:(MLSDKScene *)scene
{
    NSLog(@"Complete Restore -Path:%@",scene.path);
}

//无法进行场景恢复,原因可能是以下几个: 1.需要恢复的控制器,没有实现 UIViewController+MLSDKRestore 中的相关方法; 2.没有找到场景对应的控制器;

- (void)IMLSDKNotFoundScene:(MLSDKScene *)scene
{
 
}


//每次从web打开app都会走此方法 (这里可以获取到web页面传过来的参数,然后根据参数可以打开app对应的界面或对应的操作)
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
{
    NSLog(@"title: %@", userActivity.title);
    // NSUserActivityTypeBrowsingWeb
    NSLog(@"activityType: %@", userActivity.activityType);
    // The webpage URL property always contains an HTTP or HTTPS URL, and you can use NSURLComponents APIs to manipulate the components of the URL.
    NSLog(@"webpageURL: %@", userActivity.webpageURL);
    // 根据webpageURL的路径、参数等作出适当的处理
    // <your code here ...>
    return YES;
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
   [MobLink setDelegate:self];
    [self getMobId];
}

三、链接生成
1、不带任何参数
https://azyy.t4m.cn

这个链接来源于mob后台Universal Link 如下图


image.png

2、带有参数(例如testID = 5的参数)
https://azyy.t4m.cn/s?&testID=5

由于项目需求未确定,所以就没有深入研究,欢迎补充!

参考文档:
https://www.jianshu.com/p/e3b320c335f4
https://www.jianshu.com/p/c6c7732d6303
http://www.mob.com/wiki/detailed?wiki=Moblink_ios_major_first&id=34

相关文章

网友评论

      本文标题:Universal Link ---iOS

      本文链接:https://www.haomeiwen.com/subject/nwzthhtx.html