一、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];

九、