`
程言方
  • 浏览: 47524 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

项目中遇到的IOS 9.x兼容性问题总结

阅读更多
对于ios还是有很多陌生,以致项目上了一版本之后才发现,版本适配问题的严重性,总结下这段时间遇到的两个问题。

一:HTMLPrase解析乱码的问题
使用HTMLPrase主要用于解决解析后台懒得解析的html标签,之前一直使用的很顺畅,今天发现9.x系统竟然出现了乱码。最终查到是HTMLPrase出了问题,而且8.x正常显示。可想而之,肯定是编码除了问题。以下是解决方案:
-(id)initWithString:(NSString*)string error:(NSError**)error
{
    if (self = [super init])
    {
        _doc = NULL;
       
        if ([string length] > 0)
        {
            CFStringEncoding cfenc = CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding);
            CFStringRef cfencstr = CFStringConvertEncodingToIANACharSetName(cfenc);
            const char *enc = CFStringGetCStringPtr(cfencstr, 0);
           
            //在这里加上下面两句!!
            char buffer[255];
            if (enc == NULL) {
                if (CFStringGetCString(cfencstr, buffer, 255, kCFStringEncodingUTF8)) enc = buffer;
            }
           
            int optionsHtml = HTML_PARSE_RECOVER;
            optionsHtml = optionsHtml | HTML_PARSE_NOERROR; //Uncomment this to see HTML errors
            optionsHtml = optionsHtml | HTML_PARSE_NOWARNING;
            _doc = htmlReadDoc ((xmlChar*)[string UTF8String], NULL, enc, optionsHtml);
        }
        else
        {
            if (error) {
                *error = [NSError errorWithDomain:@"HTMLParserdomain" code:1 userInfo:nil];
            }
        }
    }


return self;
}

二:获取推送通知设置
IOS7和IOS8的判断方式不同,直接上代码把:
- (BOOL)isAllowedNotification {
    //iOS8 check if user allow notification
    if ([self isSystemVersioniOS8]) {// system is iOS8
        UIUserNotificationSettings *setting = [[UIApplication sharedApplication] currentUserNotificationSettings];
        if (UIUserNotificationTypeNone != setting.types) {
            return YES;
        }
    } else {//iOS7
        UIRemoteNotificationType type = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
        if(UIRemoteNotificationTypeNone != type)
            return YES;
    }
   
    return NO;
}
分享到:
评论

相关推荐

    ios-URLNavi.zip

    1. **兼容性**:确保项目兼容不同版本的iOS和多种地图应用。 2. **用户选择**:如果用户安装了多个地图应用,应提供选择界面,让用户决定使用哪个应用进行导航。 3. **错误处理**:当用户未安装任何地图应用或URL ...

    MAC OS.X.10.8.iso 镜像文件

    总的来说,MAC OS X 10.8是一个强大的操作系统,它不仅提供了丰富的功能,还加强了与iOS设备的兼容性。通过ISO镜像文件,用户可以在不同的环境中体验到MAC OS的魅力,无论是实体的Mac设备还是虚拟机上的模拟环境。...

    GAIA_Client.SRC_IOS.7z

    在实际操作中,可能会遇到的问题包括但不限于:兼容性问题(不同iOS版本间的差异)、证书和签名问题(用于在非越狱设备上安装应用)、以及可能存在的代码错误或警告。解决这些问题需要深入理解iOS开发的各个环节,...

    ios 不支持 iframe 的完美解决方法(兼容iOS&安卓)

    在iOS和Android平台之间,网页开发常常面临一些兼容性问题,特别是在使用`iframe`元素时。`iframe`,即内联框架,常用于在单一HTML文档中嵌入其他网页内容,实现页面组件的复用。然而,iOS系统对`iframe`的处理方式...

    Unity 4.x Pro Patch

    2. 错误修复:补丁通常用于修复已知的软件问题,包括崩溃、兼容性问题、内存泄漏等,确保用户能够顺利进行开发和运行项目。 3. 功能增强:可能增加了新的API或改进了现有功能,如光照系统、动画编辑器、粒子效果等...

    MJRefresh兼容ios11demo

    5. **ios11适配**:说明这个项目的目标是解决从旧版本升级到iOS 11时可能出现的兼容性问题。 【详细知识点】 1. **MJRefresh机制**:MJRefresh库通过监听UIScrollView的滚动事件来触发刷新和加载更多的操作,它包含...

    jsonkit 支持ios9 ,完美解决 ios9 奔溃问题

    JSONKit 的出现,旨在提供一个兼容性良好的解决方案,特别是在面对 iOS 9 的崩溃问题时,它表现出了强大的适应性。 首先,我们要理解 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和...

    FFmpeg-X264-Encode-for-iOS, 利用FFmpeg x264将iOS摄像头实时视频流编码为h264文件.zip

    这通常涉及配置Xcode项目,添加必要的库依赖,并解决架构兼容性问题。 2. **捕获摄像头视频流**: 使用AVFoundation框架中的AVCaptureSession,可以捕获iOS设备摄像头的实时视频流。开发者需要创建一个捕获会话,...

    Xcode14.7.zip

    当用户升级到iOS 14.7.x后,可能会遇到Xcode无法正常调试应用的问题,这通常是由于Xcode与新系统版本的兼容性问题导致的。 首先,我们需要理解为什么Xcode在iOS 14.7.x升级后可能无法调试。这可能涉及到以下原因: ...

    x_code_ios_13.1.zip

    通过解压这个文件,开发者可以研究其内容,学习如何适应新的开发环境,或者解决特定的兼容性问题。 总结起来,"x_code_ios_13.1.zip"是一个关键的资源,对于正在使用iOS 13.1系统的开发者而言,理解Xcode 13.1的...

    HBuilderX 离线SDK Android-SDK@1.9.9.52372_20180929

    它可以帮助开发者复现旧版本的问题,或者在特定的API级别下测试应用兼容性。 总的来说,HBuilderX离线SDK中的Android-SDK@1.9.9.52372_20180929是为开发者提供了一个完整且独立的Android开发环境,使得在没有网络的...

    evasi0n 1.1

    描述中的"ios6.x完美越狱工具 evasi0n 1.1"强调了该工具对于iOS 6.x系列系统的兼容性和越狱的完整性。在iOS社区中,“完美越狱”意味着用户可以完全解除设备的限制,包括安装未经苹果官方认可的第三方应用程序、...

    浅谈Html5移动端ios/Android兼容性总结

    HTML5在移动端,尤其是iOS和Android平台上的兼容性问题是一个重要的议题,因为它直接影响到用户体验和应用的稳定性。本文将深入探讨这些兼容性问题,并提供一些解决方案。 首先,我们需要理解`viewport`元标签的...

    详解iOS11、iPhone X、Xcode9 适配指南

    在iOS开发过程中,随着新版本的发布,开发者需要对应用程序进行适配以确保其兼容性和用户体验。本篇文章主要探讨了iOS11、iPhone X以及Xcode9的适配问题,帮助开发者解决在升级过程中遇到的各种挑战。 首先,我们来...

    Location-cleaned iOS 驱动 14.7.zip

    在实际应用中,用户可能需要这个驱动来解决升级到iOS 14.7后遇到的硬件兼容性问题,或者为了优化设备性能。 iOS驱动程序的工作原理: 1. 驱动层:在iOS中,驱动程序主要分为内核空间和用户空间两部分。内核空间的...

    iPhone4s升级ios8.1.2解决联通3G发短信、上网_移动4G卡激活电话上网短信

    1. **系统兼容性问题**:某些版本的iOS可能与特定的硬件或网络配置不完全兼容。 2. **运营商设置问题**:运营商设定的网络参数可能与新版本的iOS不匹配,导致无法正常使用网络服务。 3. **内置卡贴机问题**:内置...

    Xcode需要的iOS11.2

    在iOS应用开发中,Xcode是苹果官方提供的集成开发环境(IDE),用于编写、调试和构建iOS及macOS应用程序。...这不仅可以避免在真机测试中出现兼容性问题,还能确保应用在用户的不同设备上都能提供良好的用户体验。

    ITMS-90809 UIWebViewImpl-ios.mm

    在iOS开发中,ITMS-90809 是一个苹果App Store审核团队经常会遇到的错误提示,它意味着你的应用程序使用了已被弃用的API,具体在这个案例中,是关于`UIWebView`的使用。苹果从iOS 13开始逐步淘汰了`UIWebView`,并...

    Xcode 9下适配iPhoneX导致iOS 10不兼容问题的解决方法

    在Xcode 9中开发应用时,为了适配iPhone X的特性,如刘海屏和安全区域,苹果引入了一些新变化,这些变化可能导致对iOS 10版本的兼容性问题。本文将详细介绍如何解决Xcode 9适配iPhone X时引发的iOS 10设备不兼容的...

Global site tag (gtag.js) - Google Analytics