集成的话,直接按照官方文档来实现就可以了,基本上没什么大问题。

下面说一下我再使用魔窗-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) {//回调里面不会返回给你参数,//会返回给你完整的短连接,(携带参数)//如果想要满足-场景不确定-场景数目不确定的情况下,只能调用这个方法。但是问题是没有参数返回给我们。//所以我们只能在完整的短连接里面回去参数。//代码如下。
}];
  1. 在完整的短连接里面获取参数
///从url中得到参数
- (NSDictionary *)getParameterFromUrl:(NSURL *)url
{//https://s.mlinks.cc/AawE?mode=web&param=hhh//1.url转字符NSString *getUrlValue = [NSString stringWithFormat:@"%@",url];//2.拆分url,得到参数的字符串NSArray * array = [getUrlValue componentsSeparatedByString:@"?"];//mode=web&param=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;
}
  1. UrlDecode
///url解码
-(NSString *)URLDecodedString:(NSString *)str
{NSString *decodedString =(__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, (__bridge CFStringRef)str, CFSTR(""), CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));return decodedString;
}
  1. 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的坑相关推荐

  1. fir.im Weekly - 热门 iOS 第三方库大盘点

    本期 fir.im Weekly 收集的热度资源,大部分关于www.gyjqfkyy.comAndroid.iOS 开发工具.源码和脑洞大开的 UI 动画,希望给你带来更多的工作创意与灵感. 盘点国内 ...

  2. 个人常用iOS第三方库以及XCode插件介绍

    第三方库是现在的程序员离不开的东西,不光是APP开发,基本上所有的商业项目都会或多或少的使用到第三方库. Github上Star>100的开源库数量如下 可以看到JS以绝对的优势排名第一,一定程 ...

  3. iOS 第三方库汇总(超全!!!!)

    图像: 1.图片浏览控件MWPhotoBrowser  实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. ...

  4. ios第三方库和工具类

    下面的是使用苹果电脑后,自己的一下积累吧.有好用的第三方库和工具,肯定会第一时间和大家分享的. 自己平时写的一些分类和工具库 SSTools 已经在github上面开始更新了,欢迎大家来指正和补充 一 ...

  5. iOS第三方库汇总分享

    项目中常用第三方库收集 库名 用途 网络库 AFNetworking 网络请求库 SDWebImage 图片请求库 数据库 FMDB 基于SQLite数据库引擎 MagicalRecord 基于Cor ...

  6. 项目中常用的 iOS 第三方库

    数据相关 Haneke:数据缓存,包括 UIImage.NSData.JSON.String-- FMDB:SQLite 数据库 CryptoSwift:各种加密 ObjectMapper: JSON ...

  7. IOS 第三方库介绍

    1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是G ...

  8. 盘点国内程序员不常用的热门iOS第三方库:看完,还敢自称”精通iOS开发”吗?

    综合github上各个项目的关注度与具体使用情况,涵盖功能,UI,数据库,自动化测试,编程工具等类型,看完,还敢自称"精通iOS开发"吗? https://github.com/s ...

  9. iOS 开发的非常有用 第三方库

    ios中那些好用的第三方库 ios 里面有很多很多好用的第三方框架,有许多是项目中必用的,本文主要来写一些常用的ios第三方库的使用 (一)Masonry Masonry是一个轻量级的布局框架 拥有自 ...

  10. iOS学习资源汇总(开源项目、第三方库、技术博客等等)

    iOS学习资源汇总(开源项目.第三方库.技术博客等等) 字数3919 阅读10309 评论29 喜欢297 前言 Github众所周知,全球最大的同性社区交友网站,在这里你可以获取任何你想要的,只要你 ...

最新文章

  1. win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
  2. GIF动画,菊花动画,UIView动画,CoreAnimation动画(CALayer动画)的用法
  3. 新手上路之django项目开发(一)-----创建项目并运行
  4. plsql存过声明游标_plsql--游标用法
  5. 我一直在想500年前我是不是孙悟空,但是事实上我却是至尊宝。这就是宿命(capsicum.heorhome.net)
  6. IOMMU 虚拟IO地址和物理地址相关联
  7. Chapter 2 大规模MIMO系统信息论基础及信道容量分析
  8. 小球碰撞python代码_python开发的小球完全弹性碰撞游戏代码_python_脚本之家
  9. 月薪过2w的IT程序员都是怎么做到的?
  10. EXCEL——自定义单元格格式
  11. IOS证书申请最新版2021
  12. 成功通过PMP考试---我的经验
  13. html5中分镜图文脚本,抖音分镜脚本这样做 轻松打造100w+粉丝大号
  14. 大数据平台开发需要掌握什么语言
  15. 哈工大计算机研究生院著名导师,哈尔滨工业大学研究生导师介绍:李海峰-中公研招网...
  16. 【力扣】6. Z 字形变换
  17. python 小程序搜索排名优化_5个Python脚本优化你的网站搜索引擎优化
  18. 算力资源A100/V100/910都不限时免费使用的开源社区,你还不知道?
  19. 【数学】【矩阵】迹(Trace)及相关性质
  20. 琅琊领航联盟|TK联盟首期私享会圆满结束

热门文章

  1. 【大咖说】激活数据价值,永洪科技智胜法则
  2. 如何将图片转成png格式?图片的格式怎么转换
  3. oracle的报告,Oracle数据库(RAC)巡检报告
  4. 分解因式公式JAVA_递归算法解决因式分解(java版)
  5. php发送邮件的方式,php 发送邮件几种方式
  6. 【生信】全基因组测序(WGS)
  7. ntds(600)ntdsa:系统错误1453配额不足及恢复过程记录
  8. Access query 使用方法
  9. 有哪些常用的搜索引擎指令?
  10. Yardi客户入选全球房地产十强报告