`
jsntghf
  • 浏览: 2546727 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

检测新版本

    博客分类:
  • iOS
阅读更多

这是一个非Appstore的更新检查,主要是根据后台的返回判断是否有版本更新,核心代码如下:

 

- (void)connection:(NSURLConnection*)connection didReceiveData:(NSData *)data {
    [receivedData appendData:data];
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
    [[UIApplication sharedApplication]setNetworkActivityIndicatorVisible:NO];
    [connection release];
    [receivedData release];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
    [[UIApplication sharedApplication]setNetworkActivityIndicatorVisible:NO];
    
    NSString *result;
    result = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
    NSString *content = [[result componentsSeparatedByString:@"<body>"] objectAtIndex:1];
    [result release];
    content = [[content componentsSeparatedByString:@"</body>"] objectAtIndex:0];
    content = [content stringByTrimmingCharactersInSet: [NSCharacterSet newlineCharacterSet]];
    
    [connection release];
    [receivedData release];
    
    if([content isEqualToString:@"Newest"] == YES) {
        newVersion = @"Newest";
    } else {
        newVersion = [[content componentsSeparatedByString:@"[New]"] objectAtIndex:0];
        newThings = [[content componentsSeparatedByString:@"[New]"] objectAtIndex:1];
        newThings = [content stringByTrimmingCharactersInSet: [NSCharacterSet newlineCharacterSet]];
    }
    [delegate checkFinishedWithNewVersion:newVersion NewThing:newThings];
}

- (void)cancelDownload {
    [[UIApplication sharedApplication]setNetworkActivityIndicatorVisible:NO];
    [theConncetion cancel];
    theConncetion = nil;
    receivedData = nil;
}

- (NSString *)getNowVersion {
    NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
    NSString *result_ = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
    return result_;
}

- (void)checkNew {
    [self startCheckWithURLString:[NSString stringWithFormat:@"http://CheckUpdate.action?type=%@",[self getNowVersion]]];
}

- (void)startCheckWithURLString:(NSString *)theURL {
    NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:theURL] cachePolicy:NSURLRequestUseProtocolCachePolicy  timeoutInterval:60.0];
    theConncetion = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
    if(theConncetion) {
        receivedData = [[NSMutableData data] retain];
        [[UIApplication sharedApplication]setNetworkActivityIndicatorVisible:YES];
    } else {
        NSLog(@"Can't start the connection!");
    }
}

 

分享到:
评论

相关推荐

    iPhone应用程序检测新版本

    "iPhone应用程序检测新版本"这个主题就聚焦于如何实现在iOS应用中实现自动检查更新的功能。 首先,我们要理解的是,iOS应用通常通过Apple的App Store进行分发和更新。因此,检测新版本的方法通常是通过查询App ...

    e语言-自动检测新版本

    《易语言-自动检测新版本》 易语言是一种由中国程序员王永福先生创造的编程语言,旨在让中国的普通用户也能轻松地进行程序开发。它的设计理念是“易学易用”,因此,它拥有直观的中文语法,降低了编程的入门难度。...

    火山安卓利用微云实现远程检测最新版本.zip

    如果发现云端版本高于本地版本,就需要提示用户有新版本可用,并提供更新选项。 6. **处理更新**:如果用户选择更新,可以通过微云SDK提供的下载功能,引导用户下载新的APK文件。下载完成后,可以调用系统的安装...

    利用微云实现远程检测最新版本.zip

    如果检测到有新版本可用,服务会向用户推送更新通知,或者直接下载并安装新版本,确保用户始终使用的是最新的软件。 3. **安全考虑**: 在远程检测和更新过程中,必须重视安全性。数据传输应使用HTTPS等加密协议,...

    详解Android Studio无法检测新版本问题解决

    Android Studio 无法检测新版本问题解决 Android Studio 是一个功能强大且广泛使用的集成开发环境(IDE),它提供了许多实用的功能来帮助开发者更快速、更高效地开发 Android 应用程序。然而,在使用 Android ...

    易语言-自动检测新版本

    在IT行业中,自动检测新版本是一项重要的功能,它通常用于软件的更新管理和用户体验优化。"易语言-自动检测新版本"这个项目就是针对这一需求而设计的,它可以帮助开发者实现程序自动检查是否有可用的新版本,并提示...

    PHP检测APP版本更新

    整理的一个PHP检测APP版本是否有更新的方法,下载后请按自己需求修改

    Android检测新版本自动更新(通知栏显示下载进度)

    获取服务器端XML文件,解析XML获取到最新版本号,与当前软件版本号进行对比,发现不一样则提示更新。 涉及到内容点: 1.远程获取XML并分析XML内容 2.远程下载文件并打开 3.下载时通知栏显示下载进度

    发现新版本自动更新demo

    3. **网络请求检测新版本**:在闪屏界面,应用会向服务器发送请求,获取当前应用的远程版本信息。这通常通过HTTP/HTTPS请求实现,可以使用Android的`HttpURLConnection`或者第三方库如Volley、OkHttp等。 4. **友盟...

    Android 版本检测与管理

    `MyAutoUpdate` 是整个自动更新机制的核心类,它负责检测新版本、下载安装包以及安装等操作。下面是对该类的主要属性和方法的详细解释: - **属性**: - `activity`: 当前 Activity 的引用,用于调用系统级的方法...

    Android自动检测版本及自动升级

    2. 检测新版本: 应用启动时或者在特定时间点(如用户打开应用时),可以通过网络请求到服务器的API接口,获取当前服务器上的最新版本信息。此接口应返回包含最新`versionCode`和`versionName`的数据。比较本地应用...

    android检测版本更新,通知栏显示下载进度

    首先,我们需要一个后台服务来检测新版本。通常,我们会通过HTTP请求到服务器获取最新的应用版本信息,比如`versionCode`和`versionName`。这些信息可以通过JSON或者其他格式的API返回。在获取到新版本信息后,与...

    版本检测自动更新.zip

    2. **版本检测机制**:通常,软件会通过网络请求来检测新版本。这涉及到HTTP/HTTPS请求,可能使用API接口,向服务器发送当前安装的版本号,然后服务器返回最新的版本信息。这种机制可以定期执行,例如启动时或在用户...

    安卓Android源码——版本检测自动更新.zip

    在安卓(Android)开发中,版本检测和自动更新是至关重要的功能,它允许应用程序自动检测新版本并提示用户进行更新,以确保应用始终运行在最新、最安全的版本上。这个压缩包“安卓Android源码——版本检测自动更新....

    Android自动检测版本及自动升级.zip

    这一功能使得用户无需手动检查更新,而是由应用自动检测新版本并提示或直接进行升级。以下将详细介绍如何实现这一功能。 1. 版本检测: - **服务器端**:首先,你需要在服务器上维护一个API接口,该接口返回应用的...

    WPF自动检测更新版本

    7. 下载更新:如果发现新版本,客户端会下载更新包,通常是一个自解压或安装程序。 8. 检查数字签名:为了确保安全,下载的更新包应验证数字签名,确保来自可信源。 9. 后台更新:更新过程应在后台进行,避免打扰...

    实现软件的版本检测以及自动更新

    每个版本都有一个唯一的标识符,这在检测新版本时非常重要。 2. 版本检测机制:当软件启动或在后台运行时,程序会通过HTTP或HTTPS请求与服务器通信,检查是否有新版本发布。这通常通过API接口完成,服务器返回当前...

    安卓app开发项目-版本检测自动更新(源码).zip

    这个项目源码主要展示了如何实现在安卓应用中检测新版本并自动进行更新。以下是相关知识点的详细说明: 1. **版本检测**:这是检查应用程序是否为最新版本的过程。通常通过与服务器端的API交互来实现,API会返回...

Global site tag (gtag.js) - Google Analytics