直播平台开发中解决iOS 14 兼容问题和静默推送
IOS系统更新速度非常快,并由此为软件开发人员带来了兼容性挑战,比如云豹在每次IOS系统更新后,都要安排IOS程序组加班解决兼容性问题,并为保洁阿姨提供更多薪水用于清扫脱落在地的发丝……本文将从云豹直播平台开发中遇到的兼容性问题讲起。
一、直播平台开发中遇到的IOS 14系统兼容问题:
1、 在iOS14上可能出现点击cell上的视图无法响应的情况
直播平台开发中会出现该问题的原因:
iOS14更改Cell视图布局.将contentView放在最上层,如果将视图加载在cell上,将会出现contentView遮罩,导致事件无法响应.是在此前关于 contentView 的声明注释中,官方已经明确建议开发者将 customView 放在 contentView 上,使 contentView 作为 UITableViewCell 默认的父视图.
解决方法:
将cell子视图加载在contentView上.
2、使用layer.mask做遮罩时无法显示
用途:在项目聊天消息列表中,用于拉伸图片,展示气泡效果(如下图所示)
// maskView = [UIImageView new];
// maskView.image = maskImage;
// [maskView setFrame:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
// self.layer.mask = maskView.layer;
在iOS14以下使用UIImageView的layer做遮罩的代码没有问题,但是在iOS14上无法正常展示
问题解决方法:
UIImage *newImage = [self stretchImage:maskImage newSize:self.bounds.size leftCapWidth:maskImage.size.width/2 topCapHeight:maskImage.size.height-7];CALayer *maskLayer = [CALayer layer];maskLayer.frame = self.bounds;maskLayer.contents = (id)newImage.CGImage;self.layer.mask = maskLayer;- (UIImage *)stretchImage:(UIImage *)originImage newSize:(CGSize)newSize leftCapWidth:(CGFloat)leftCapWidth topCapHeight:(CGFloat)topCapHeight{UIImage *newImage;newImage = [originImage stretchableImageWithLeftCapWidth:leftCapWidth topCapHeight:topCapHeight];UIGraphicsBeginImageContextWithOptions(newSize, false, 0);[newImage drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];newImage = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();return newImage;
}
3、YYAnimatedImageView图片加载不出来
直播平台开发中出现该问题的原因:
调试时发现YYAnimatedImageView.layer.contents为空导致.
解决方法:在YYAnimatedImageView底层重写的- (void)displayLayer:(CALayer *)layer方法中加上系统版本判断
- (void)displayLayer:(CALayer *)layer {if (_curFrame) {layer.contents = (__bridge id)_curFrame.CGImage;}else {if (@available(iOS 14.0, *)) {[super displayLayer:layer];}}
}
4、UIDatePicker样式错误问题
UIDatePicker增加了preferredDatePickerStyle,需要设置为UIDatePickerStyleWheels才会和原来样式一样。并且现在对frame的宽高设置已经不生效了。会采用系统默认的宽高。这个样式只有13.4之后才会出现,之前的系统是没有这个属性的。
if (@available(iOS 13.4, *)) {datapicker.preferredDatePickerStyle = UIDatePickerStyleWheels;}
5、每次打开APP,都会提示粘贴信息.
直播平台开发中出现该问题的原因:
在UIPasteboard获取粘贴板的类,有的第三方SDK用到了UIPasteboard读取iOS系统的粘贴板内容,所以iOS14此次更新是让用户知晓,此APP读取了你的粘贴板内容,并在读取的时候展示了出来。在iOS14以下APP也是可以读取粘贴板内容的,只是用户看不到。
解决方法:在APP启动和进入后台时设置以下代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {[[UIPasteboard generalPasteboard] setString:@""];return YES;}-(void)applicationWillResignActive:(UIApplication *)application{[[UIPasteboard generalPasteboard] setString:@""];
}
二、如何在直播平台开发中实现静默推送
1、 使用场景:app在后台时,收到推送后自动播放一段音乐。
2、 解决方法:后台在推送时增加参数’content-available’=>‘ture’,
app端在AppDelegate.m中的
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:
(void (^)(UIBackgroundFetchResult))completionHandler
方法中加入在后台的判断即可
if (application.applicationState == UIApplicationStateBackground){if ([minstr([userInfo valueForKey:@"type"]) isEqual:@"9"]){[[NSNotificationCenter defaultCenter] postNotificationName:@"shop_notification" object:userInfo];}}
以上就是本文《直播平台开发中解决iOS 14 兼容问题和静默推送》的全部内容,随着时代发展,手机硬件也会不断升级换代,这要求我们这些开发者必须紧跟发展的潮流,不断升级更新程序。
直播平台开发中解决iOS 14 兼容问题和静默推送相关推荐
- 手机直播系统开发中关于iOS获取图形验证码功能
在手机直播系统开发中关于iOS获取图形验证码功能介绍,首先进入注册页面后请求图形验证码接口获取图形验证码的数字组合,然后加载到相应的页面上,在图形验证码页面我们定义了几个属性,字符串的数量.显示的线条 ...
- 直播平台开发过程中关于谷歌fcm推送介绍
在直播平台开发中要集成谷歌fcm,首先需要满足一下条件: 1.设备必须是android4.0以上,Google Play Services 必须是 11.2.0以上版本 2.Android SDK M ...
- 短视频平台开发VS直播平台开发,未来发展趋势
2018年直播平台依旧火热,但短视频平台也迅速崛起,行业间的竞争愈加激烈,也有很多平台终因不适应市场被淘汰.短视频和直播也是展开了一场"绞杀战",短视频嵌入到直播中增加内容,而短视 ...
- 为什么我说,卖货直播平台开发的定位可以从这方面入手
互联网给予了人们更多的便利,开阔了人的眼界,也方便了人们的生活,很多程序软件都在为了"如何更方便用户(如何更满足用户偷懒的心理)"而广泛进行大数据分析,且越来越多的软件可开发者们正 ...
- java做直播需要哪些技术_直播APP开发中需要解决哪些技术难点?千联信息
泛娱乐发展的火热,网红经济不断发酵的今天,不少企业靠着开发直播APP狠狠的赚了一波,导致很多人眼红,也想投入其中. 那么开发一款直播APP开发中需要解决哪些技术难点?小编在这里就来为大家解答: 视频直 ...
- IOS直播平台开发简单的队列效果实现
说到IOS直播平台开发队列的话就想到了多线程,NSOperation ,我们可以重写它,然后在 start 方法中添加动画,但是注意我们只是需要让这些消息排队,更新 UI 还是要在主线程操作:我们还要 ...
- 直播平台开发时iOS 开发内购功能,直播平台源码搭建
1.首先登录苹果账号,在直播平台源码搭建完成好后,进入后台管理中心添加商品,选择功能----App内购买项目------添加商品类型.商品的ID.以及说明信息. 2.在直播平台源码搭建后台创建沙盒测试 ...
- iOS开发中解决第三方静态库符号冲突的终极方案
iOS开发中解决第三方静态库符号冲突的终极方案 背景 在iOS开发的时候,经常会使用各种第三方静态库,这些库内部可能会打包了相同的第三方库.那么在链接的时候就会发生符号冲突. 例如:A厂商提供的lib ...
- 直播源代码中关于手机直播平台开发的登陆注册介绍
一套完整的手机直播平台,需要有一套完善的直播源代码.开发一套符合大众需求,得到市场认可的直播平台,是需要开发公司经过不断优化调整更新的.只有开发出符合大众需求的直播平台,才能快速在市场当中得到认可和使 ...
最新文章
- 计划实现一个开源的KV数据库——Simple DB
- python包管理_Python包管理整理:setuptoo
- solver.prototxt参数说明(二)
- Java 类型和数据库类型怎么实现相互映射?
- 成都亿佰特物联网无线数传专家:lora无线传输模块网关技术的优缺点
- 点云合并pcl重载“+”
- iOS开发中常见的性能优化技巧
- 在网页在播放flv格式的视频
- [转]ArcGIS.Server.9.3和ArcGIS API for Flex实现GraphicsLayer上画点、线、面(五)
- 计算机类专业毕业设计(课程设计)题目大全
- spark学习之SparkSQL
- Linux下的sock_stream和sock_dgram
- linux实训分析与体会,linux实训总结与体会
- 第1-2课:算法设计常用思想之贪婪法
- 5G发展面临窘境,5G手机销量环比下滑,手机企业对5G热情降温
- vue.js实战 第一篇 第七章 组件详解_组件通信
- Springcloud的版本依赖问题(最全,包含springCloud所有的版本)
- 传奇游戏应该选择什么样的服务器?
- 测距必备,8个超声波测距方案,实时更可控
- 李治国回应冯大辉的吐槽:关于口碑网和阿里绕不开的往事
热门文章
- 9月20日云栖精选夜读:异构计算高性能计算分论坛——揭秘拿什么实现超算平民化、国际化?
- css3 3d头像,Three.js 3D头像
- gl linux qt 库_Linux下Qt应用程序的发布(使用LDD命令查看所有依赖的库文件)
- 计算机专业论文谢辞,计算机专业论文致谢信.docx
- Top-down Visual Saliency Guided by Captions阅读笔记
- 巴比特 | 元宇宙每日必读:回顾数字藏品的2022,从高歌猛进到急速刹车,明年能否等到“风”来?...
- Modelsim软件仿真出错:Modelsim is exiting with code 7.
- Sky Hackthon比赛指北-ASR篇
- [2001-2003美/新等合拍经典奇幻大片][魔戒1-3][BD-RMVB][中英字幕/1280x720高清晰版]
- Lyapunov stability analysis、LaSalle’s invariance principle、Barbalat’s lemma