iOS第三方库-魔窗Mlink的坑
集成的话,直接按照官方文档来实现就可以了,基本上没什么大问题。
下面说一下我再使用魔窗-mlink功能中遇到的问题,
- 含有mlinkkey识别的方法使用:
/*** 注册一个mLink handler,当接收到URL的时候,会根据mLink key进行匹配,当匹配成功会调用相应的handler* 需要在 AppDelegate 的 didFinishLaunchingWithOptions 中调用* @param key 后台注册mlink时生成的mlink key* @param handler mlink的回调* @param params 动态参数* @return void*/
+ (void)registerMLinkHandlerWithKey:(nonnull NSString *)key handler:(CallBackMLink)handler;
这个方法主要是使用于推广场景固定的情况下,可以添加多个方法,来实现不同的key&不同的场景。
这里要注意:
1.短连接拼接参数。
2.在回调里面可以拿到短连接里面携带的参数。
- 通用mlinkkey的方法使用:
/*** 注册一个默认的mLink handler,当接收到URL,并且所有的mLink key都没有匹配成功,就会调用默认的mLink handler* 需要在 AppDelegate 的 didFinishLaunchingWithOptions 中调用* @param handler mlink的回调* @return void*/
+ (void)registerMLinkDefaultHandler:(CallBackMLink)handler;
需要注意的是:
1.在这个通用方法里面,不需要预先在代码里面添加mlinkKey,所有在魔窗平台设置mlink服务都会执行这个方法。
2.短连接参数的拼接。
特别注意:
[MWApi registerMLinkDefaultHandler:^(NSURL * _Nonnull url, NSDictionary * _Nullable params) {//回调里面不会返回给你参数,//会返回给你完整的短连接,(携带参数)//如果想要满足-场景不确定-场景数目不确定的情况下,只能调用这个方法。但是问题是没有参数返回给我们。//所以我们只能在完整的短连接里面回去参数。//代码如下。
}];
- 在完整的短连接里面获取参数
///从url中得到参数
- (NSDictionary *)getParameterFromUrl:(NSURL *)url
{//https://s.mlinks.cc/AawE?mode=web¶m=hhh//1.url转字符NSString *getUrlValue = [NSString stringWithFormat:@"%@",url];//2.拆分url,得到参数的字符串NSArray * array = [getUrlValue componentsSeparatedByString:@"?"];//mode=web¶m=hhhNSString *valueStr = [NSString stringWithFormat:@"%@",array.lastObject];//mode=web param=hhh//3.拆分参数的字符串,得到具体参数NSArray *valueArr = [valueStr componentsSeparatedByString:@"&"];//4.存储NSMutableDictionary *target = [NSMutableDictionary dictionary];if (valueArr.count > 0) {for (int i = 0; i < valueArr.count; i ++) {NSArray *newarray = [[valueArr objectAtIndex:i] componentsSeparatedByString:@"="];if (newarray.count > 0) {NSString *key = [NSString stringWithFormat:@"%@",newarray.firstObject];NSString *value = [NSString stringWithFormat:@"%@",newarray.lastObject];//urlDecodeNSString * paramJson = [self URLDecodedString:value];//jsonStr//这里要特别注意,万一参数是一个字典,我们需要用url编码进行编码,将编码之后的字符串下发,拿到之后要进行解码,以及json字符串转成字典NSDictionary * param1 = [self dictionaryWithJsonString:paramJson];if (param1.count > 0) {[target setObject:param1 forKey:key];}else{[target setObject:value forKey:key];}}}DLog(@"%@",target);}NSDictionary *param = [target mutableCopy];return param;
}
- UrlDecode
///url解码
-(NSString *)URLDecodedString:(NSString *)str
{NSString *decodedString =(__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, (__bridge CFStringRef)str, CFSTR(""), CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));return decodedString;
}
- json字符串转字典
///字符串转字典
- (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString
{if (jsonString == nil) {return nil;}NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];NSError *err;NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonDataoptions:NSJSONReadingMutableContainerserror:&err];if(err) {DLog(@"json解析失败:%@",err);NSDictionary * errDic = [[NSDictionary alloc] init];return errDic;}return dic; }
初学者书,有错误欢迎大家留言指正
iOS第三方库-魔窗Mlink的坑相关推荐
- fir.im Weekly - 热门 iOS 第三方库大盘点
本期 fir.im Weekly 收集的热度资源,大部分关于www.gyjqfkyy.comAndroid.iOS 开发工具.源码和脑洞大开的 UI 动画,希望给你带来更多的工作创意与灵感. 盘点国内 ...
- 个人常用iOS第三方库以及XCode插件介绍
第三方库是现在的程序员离不开的东西,不光是APP开发,基本上所有的商业项目都会或多或少的使用到第三方库. Github上Star>100的开源库数量如下 可以看到JS以绝对的优势排名第一,一定程 ...
- iOS 第三方库汇总(超全!!!!)
图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. ...
- ios第三方库和工具类
下面的是使用苹果电脑后,自己的一下积累吧.有好用的第三方库和工具,肯定会第一时间和大家分享的. 自己平时写的一些分类和工具库 SSTools 已经在github上面开始更新了,欢迎大家来指正和补充 一 ...
- iOS第三方库汇总分享
项目中常用第三方库收集 库名 用途 网络库 AFNetworking 网络请求库 SDWebImage 图片请求库 数据库 FMDB 基于SQLite数据库引擎 MagicalRecord 基于Cor ...
- 项目中常用的 iOS 第三方库
数据相关 Haneke:数据缓存,包括 UIImage.NSData.JSON.String-- FMDB:SQLite 数据库 CryptoSwift:各种加密 ObjectMapper: JSON ...
- IOS 第三方库介绍
1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是G ...
- 盘点国内程序员不常用的热门iOS第三方库:看完,还敢自称”精通iOS开发”吗?
综合github上各个项目的关注度与具体使用情况,涵盖功能,UI,数据库,自动化测试,编程工具等类型,看完,还敢自称"精通iOS开发"吗? https://github.com/s ...
- iOS 开发的非常有用 第三方库
ios中那些好用的第三方库 ios 里面有很多很多好用的第三方框架,有许多是项目中必用的,本文主要来写一些常用的ios第三方库的使用 (一)Masonry Masonry是一个轻量级的布局框架 拥有自 ...
- iOS学习资源汇总(开源项目、第三方库、技术博客等等)
iOS学习资源汇总(开源项目.第三方库.技术博客等等) 字数3919 阅读10309 评论29 喜欢297 前言 Github众所周知,全球最大的同性社区交友网站,在这里你可以获取任何你想要的,只要你 ...
最新文章
- win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
- GIF动画,菊花动画,UIView动画,CoreAnimation动画(CALayer动画)的用法
- 新手上路之django项目开发(一)-----创建项目并运行
- plsql存过声明游标_plsql--游标用法
- 我一直在想500年前我是不是孙悟空,但是事实上我却是至尊宝。这就是宿命(capsicum.heorhome.net)
- IOMMU 虚拟IO地址和物理地址相关联
- Chapter 2 大规模MIMO系统信息论基础及信道容量分析
- 小球碰撞python代码_python开发的小球完全弹性碰撞游戏代码_python_脚本之家
- 月薪过2w的IT程序员都是怎么做到的?
- EXCEL——自定义单元格格式
- IOS证书申请最新版2021
- 成功通过PMP考试---我的经验
- html5中分镜图文脚本,抖音分镜脚本这样做 轻松打造100w+粉丝大号
- 大数据平台开发需要掌握什么语言
- 哈工大计算机研究生院著名导师,哈尔滨工业大学研究生导师介绍:李海峰-中公研招网...
- 【力扣】6. Z 字形变换
- python 小程序搜索排名优化_5个Python脚本优化你的网站搜索引擎优化
- 算力资源A100/V100/910都不限时免费使用的开源社区,你还不知道?
- 【数学】【矩阵】迹(Trace)及相关性质
- 琅琊领航联盟|TK联盟首期私享会圆满结束