`
zjjzmw1
  • 浏览: 1367881 次
  • 性别: Icon_minigender_1
  • 来自: 开封
社区版块
存档分类
最新评论

ios 检查是否有新版本的方法

    博客分类:
  • iOS
阅读更多

用的时候需要引入一个文件  CheckUpdate.h     和一个代理。

如下 :#import <UIKit/UIKit.h>

//检查更新用的

#import "CheckUpdate.h"

 

@interface ViewController : UIViewController<CheckUpdateDelegate>

 

@end

 

 //目前的是前沿商务的那个id 所以每次都提示更新那个。

//    [CheckUpdate shareInstance].delegate = self;

 

//    [[CheckUpdate shareInstance] checkUpdate]; //检查是否最新版本

 

 

 

下面是需要导入文件的代码:

 

#import <Foundation/Foundation.h>

#import "ASIHTTPRequest.h"

#import "json.h"

 

@protocol CheckUpdateDelegate <NSObject>

 

@optional

- (void)currentVersionHasNewest;

 

@end

 

@interface CheckUpdate : NSObject <UIAlertViewDelegate>

@property (assign, nonatomic) id <CheckUpdateDelegate>  delegate;

 

+ (CheckUpdate *)shareInstance;

- (void)checkUpdate;

 

 

@end

 

 

 

#import "CheckUpdate.h"

 

//APP id为程序申请时得到。更改相应的id查询App的信息

#define kAPPID      @"681579701" //商行乐

 

//应用名字,若需要更改,可自行设置。

#define kAPPName    [infoDict objectForKey:@"CFBundleDisplayName"]

 

//此链接为苹果官方查询App的接口。

#define kAPPURL     @"http://itunes.apple.com/lookup?id="

 

 

@interfaceCheckUpdate ()

{

    NSString *_updateURL;

}

 

@end

 

 

@implementation CheckUpdate

 

+ (CheckUpdate *)shareInstance

{

    static CheckUpdate *update = nil;

    if (!update)

    {

        update = [[CheckUpdate alloc] init];

    }

 

    return update;

}

 

- (void)checkUpdate

{

    NSString *urlStr = [NSString stringWithFormat:@"%@%@",kAPPURL, kAPPID];

    NSURL *url = [NSURL URLWithString:urlStr];

    

    ASIHTTPRequest *request = [ASIHTTPRequestrequestWithURL:url ];

    [request setDidFinishSelector:@selector(checkUpdateFinished:)];

    [request setDidFailSelector:@selector(checkUpdateFailed:)];

    [request setDelegate:self];

    [request startAsynchronous];

}

 

- (void)checkUpdateFinished:(ASIHTTPRequest *)request

{

    if (request.responseStatusCode == 200)

    {

        NSDictionary *infoDict   = [[NSBundle mainBundle]infoDictionary];

        NSString *currentVersion = [infoDict objectForKey:@"CFBundleVersion"];

        NSLog(@"responseString   is   %@",request.responseString);

        NSDictionary *jsonData   = request.responseString.JSONValue;

        NSArray      *infoArray  = [jsonData objectForKey:@"results"];

        

        if (infoArray.count >= 1)

        {

            NSDictionary *releaseInfo   = [infoArray objectAtIndex:0];

            NSString     *latestVersion = [releaseInfo objectForKey:@"version"];

            NSString     *releaseNotes  = [releaseInfo objectForKey:@"releaseNotes"];

            NSString     *title         = [NSString stringWithFormat:@"%@ %@版本", kAPPName, latestVersion];

            _updateURL = [releaseInfo objectForKey:@"trackViewUrl"];

            NSLog(@"_updateURL is %@",_updateURL);

 

            NSLog(@"current is %@,last is %@",currentVersion,latestVersion);

            if ([latestVersion compare:currentVersion] == NSOrderedDescending)

            {

                UIAlertView *alertView = [[UIAlertViewalloc] initWithTitle:title message:releaseNotes delegate:selfcancelButtonTitle:@"忽略"otherButtonTitles:@"App Store下载", nil];

                [alertView show];

            

            }

            else

            {

                if ([self.delegate respondsToSelector:@selector(currentVersionHasNewest)])

                {

                    [self.delegate currentVersionHasNewest];

                }

            }

        }

        else

        {

            if ([self.delegate respondsToSelector:@selector(currentVersionHasNewest)])

            {

                [self.delegatecurrentVersionHasNewest];

            }

        }

    }

    else

        if ([self.delegate respondsToSelector:@selector(currentVersionHasNewest)])

        {

            [self.delegatecurrentVersionHasNewest];

        }

}

 

- (void)checkUpdateFailed:(ASIHTTPRequest *)request

{

//    NSLog(@"data:%@", request.responseString.JSONValue);

}

 

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

{

    if (buttonIndex == 1)

    {

        [[UIApplicationsharedApplication] openURL:[NSURLURLWithString:_updateURL]];

    }

}

 

 

 

@end

 

 

 

 

 

 

 

 

 

 

8
20
分享到:
评论

相关推荐

    版本检查更新(ios)

    在iOS开发中,版本检查更新是一项重要的功能,它允许应用自动检测是否有新的版本可用,并提示用户进行升级。这项功能不仅可以确保用户始终使用最新、最安全的软件版本,还能提高产品的用户体验,因为开发者可以及时...

    IOS应用版本自动检测

    2. **用户提示**:如果检测到有新版本,iVersion会弹出友好的提示框,告知用户有可用的更新,并提供升级选项。 3. **自定义行为**:开发者可以根据需求自定义检查更新的时机,以及提示用户的样式和行为。 4. **集成...

    iOS demo版本更新例子

    如果发现有新版本可用,它会触发后续的更新流程。 3. **用户界面**:AYCheckVersion提供了一个自定义的用户界面,可以方便地集成到你的应用中,以优雅地提醒用户更新应用。这个界面通常包含一个更新按钮,用户点击...

    检测iOSApp版本更新

    在iOS应用开发中,定期检测并提示用户进行App版本更新是一项重要的功能,它能确保用户始终使用最新、最稳定、最安全的软件版本。本文将详细介绍如何在iOS中实现App版本检测以及设置强制更新策略。 首先,我们需要...

    iOS开发之一句代码检测App版本的更新

    同时,建议在检测到新版本时弹出友好的提示框,告知用户有可用更新,并询问他们是否愿意前往更新。 在实际应用中,还可以加入网络错误处理、版本号比较等功能,以确保在没有网络连接或查询失败时提供合适的反馈。总...

    iOS私有API检查工具

    本文将详细介绍一个用于检查iOS源代码是否包含私有API的工具,并探讨其使用方法和意义。 **一、为什么要检查私有API** 1. **遵循App Store指南**:苹果App Store审核指南明确禁止使用私有API,因为这可能破坏系统...

    iOS 版本更新

    2. **App Store的更新机制**:iOS系统会定期检查所有已安装应用的更新,一旦检测到有可用的新版本,就会在通知中心或者设置应用中显示更新提示。用户可以选择立即更新或稍后处理。 3. **用户界面交互**:描述中的...

    ios-版本检测更新.zip

    在iOS开发中,确保应用程序能够及时检测到新版本并引导用户进行更新是非常重要的。这个名为"ios-版本检测更新.zip"的压缩包提供了一个简洁的解决方案,它涉及到以下几个关键知识点: 1. **版本检测**:在iOS应用中...

    ios-iOS版本更新.zip

    如果检测到有可用更新,系统会在后台下载新版本,然后在合适的时机提示用户安装。对于那些未开启自动更新的用户,应用本身可以通过以下步骤实现版本更新的提示: 1. **初始化更新检查**:在应用启动时,可以调用...

    iOS APP版本检测强制更新

    可以实现强制用户更新是一个实用程序,检查用户的当前安装的版本iOS应用程序对应用商店中当前可用的版本。如果一个新版本可用,UIAlertView的实例提出了新版本的用户通知他们,并给予他们更新应用程序的选项。

    iOSApp版本更新Demo

    在iOS应用开发中,版本更新是一项重要的功能,它允许用户接收到应用的新版本并进行升级,以获取最新的功能、性能优化或安全修复。这个“iOS App版本更新Demo”旨在提供一个实际操作的例子,帮助开发者理解如何在自己...

    IOS版本提示更新

    2. **检查更新**:用户可以通过“设置”应用来检查iOS是否有可用的更新。进入“设置” &gt; “通用” &gt; “软件更新”,系统将自动连接到Apple服务器并检测最新版本。 3. **无线更新**:大多数iOS更新都可以通过Wi-Fi...

    基于mui的webapp版本更新方法 基于mui的版本更新方法 iOS热更新安卓版本

    - 客户端检测到新版本时,弹出更新提示,附带下载链接。 - 用户点击更新,浏览器或内置下载管理器会开始下载APK。 - 下载完成后,引导用户手动安装更新的APK。 - 用户安装新版本后,覆盖旧版本,完成更新。 4. ...

    最新IOS17.0真机调试包

    总之,“最新iOS 17.0真机调试包”对于iOS开发者来说是非常重要的资源,它使得开发者能在iOS新版本发布之前就开始适配和测试,确保应用的质量和用户体验。配合Xcode的强大功能,以及对Objective-C和Swift的支持,...

    Cisco升级IOS失败后恢复IOS方法

    1. **确认系统版本:**设备重启后,首先使用`show version`命令确认当前运行的IOS版本是否为预期的版本。 2. **测试基本功能:**登录设备后,进行一些基本的功能测试,如ping测试、路由表查询等,确保设备恢复正常...

    Xcode模拟器下载地址(iOS 8 - iOS 12)

    - **避免更新问题**:有时新版本的模拟器可能会引入新的问题或错误,此时可能需要回滚到之前的稳定版本。 手动下载Xcode模拟器的具体步骤如下: 1. **访问下载页面**:根据需要下载的iOS版本,从上述提供的链接中...

    iOS 16.1 真机调试包 Xcode 13 版本调试iOS 16.1

    随着iOS系统版本的更新,开发者需要对应的设备支持文件来确保Xcode能对新版本进行真机调试。本文将深入探讨如何使用Xcode 13版本对iOS 16.1进行真机调试,以及如何获取并安装必要的设备支持文件。 首先,让我们了解...

    iOS任意版本号APP下载v5.2

    然而,有时用户可能需要下载特定版本的APP,比如为了兼容旧设备、测试特定功能或避免自动更新到新版本。"iOS任意版本号APP下载v5.2"的工具正是为了解决这一问题,它允许用户方便地获取并安装iOS应用的任意历史版本。...

    IOS真机调试包各个版本.rar

    这会更新Xcode的模拟器支持,使其能够模拟这些新版本的iOS。 2. **选择目标版本**: 在Xcode的项目设置中,开发者可以选择目标设备和iOS版本,以便在对应版本的系统上进行测试。 3. **真机调试**: 通过USB连接iOS...

    ios6 越狱 方法

    2. 检查设备兼容性:确保你的iOS设备支持iOS 6,并且已更新到最新版本。 3. 关闭Find My iPhone:在设置中关闭"查找我的iPhone"功能,以免越狱过程中出现错误。 4. 了解风险:越狱可能导致系统不稳定,甚至可能导致...

Global site tag (gtag.js) - Google Analytics