一、iOS10开始苹果开始支持推送扩展服务。能够接受自定义推送的UI通知栏展示样式。
二、关于自定义推送通知栏,使用cocoapods或者添加一些依赖的时候要注意使用的一些第三方依赖包的使用。例如:
platform:ios,'8.0'
abstract_target 'CommonPods' do
pod 'MJExtension','~>3.0.13'
pod 'AFNetworking'
pod 'Masonry'
pod 'mob_sharesdk'
pod 'mob_sharesdk/ShareSDKPlatforms/WeChat'
target 'JSbrige' do
end
target 'PushService' do
end
end
这里暂时发现mob_sharesdk的分享依赖,对扩展的PushService.Extension有影响,会造成项目中如果使用资源包.bundle里面的文件读取失败。这里就对我们的主项目进行三方使用。(项目依赖添加的原则使用:在主项目中的第三方就在主模块引入,在推送扩展需要的第三方就在扩展模块引入。两者都需要再统一加入!)修改如下:
platform:ios,'8.0'
abstract_target 'CommonPods' do
pod 'MJExtension','~>3.0.13'
pod 'AFNetworking'
pod 'Masonry'
target 'JSbrige' do
pod 'mob_sharesdk'
pod 'mob_sharesdk/ShareSDKPlatforms/WeChat'
end
target 'PushService' do
end
end
三、对于导航push的界面上面有输入框,吊起键盘的时候,左滑pop返回上一页面,在iOS12(目前发现iOS12.1.2和12.3.1、12.2系统都会有,但是在iOS10.3返回不会)导航右侧的tabbaritem图标、文字颜色变浅了。代码里面没有相关的处理。
那么换一种方式:使用
[[UIBarButtonItem alloc]initWithCustomView:changeBtn];
来代替
initWithTitle:(nullable NSString *)title style:(UIBarButtonItemStyle)style target:(nullable id)target action:(nullable SEL)action;
四、iOS8.0开始可以正式使用wkwebview来代替uiwebview来加载网页界面展示。
五、ios12.0.1之后的版本里面推送扩展的语音播放AVAudioPlayer类不再支持。即:之前尝试使用合成语音播放,现在需要注册使用voip服务打开之后才可以正常使用AVAudioPlayer类,否侧只能播放固定语音片段。
六、打开应用设置页面,之前从iOS2.0开始的一个版本,iOS10.0之后又有一种版本扩展方式
if (@available(iOS 10.0, *)) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{} completionHandler:^(BOOL success) {
}];
} else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}
七、使用xib拖拽的view,约束之后在iOS9上面可能会出现错乱情况,iOS10以及之后没有问题。这里建议使用代码写,或者如果使用的是弹窗,那么可以将这个视图使用controller替代来添加约束即可没有问题。
八、在页面使用tableview的时候设置footerview之后如果涉及修改footerview的高度代码,应该在传值,修改高度之后,再赋一下footerview,然后再reloadview。在iOS10以及之后,就不用再赋值。tableview进行reload的时候会刷新footerview的高度。
self.footerView.remarkStr = self.clueStoreDetailVM.remarkStr;
self.footerView.height = self.footerView.viewHeight;
//下面这一行是为了适配iOS9系统的不会自动拉伸footer的高度(10以及之后就不用再写下面这一行了)
self.detailTableView.tableFooterView = self.footerView;
[self.detailTableView reloadData];
九、