关键词: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后台产品管理可以拿到。
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
网友评论