IOS App版本更新

前言:检测更新是一个很常见的功能,相信每一个应用都会使用到,话不多说,直接贴码。

大致步骤如下:

1、通过http://itunes.apple.com/lookup?id=应用ID 来获取应用的相关信息;

2、与本地版本号进行比对;

3、如果需要更新,友好提示框;

4、如果需要更新,跳转到AppStore页面进行下载;


#pragma mark - 检测更新
- (void)checkSoftVersion
{
    NSString *versionString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://itunes.apple.com/lookup?id=1146055295"] encoding:NSUTF8StringEncoding error:nil];
    if (versionString != nil && [versionString length] > 0 && [versionString rangeOfString:@"version"].length == 7) {
        [self checkAppUpdate:versionString];
    }
}

#pragma mark 比较当前版本与新上线版本做比较
- (void)checkAppUpdate:(NSString *)appInfo
{
    NSString *locationVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
    NSString *appVersion = [appInfo substringFromIndex:[appInfo rangeOfString:@"\"version\":"].location + 10];
    appVersion = [[appVersion substringToIndex:[appVersion rangeOfString:@","].location] stringByReplacingOccurrencesOfString:@"\"" withString:@""];
    if ([appVersion compare:locationVersion] == NSOrderedDescending) {
        dispatch_async(dispatch_get_main_queue(), ^{
            [IWAlert doubleAlertWithTarget:_tabbarController title:@"已有更新版本" message:@"是否立即跳转到App Store下载 ?" confirmTitle:@"立刻更新" cancleTitle:@"稍后再说" success:^{
                //跳转到AppStore页面
                NSString *updUrl = @"https://itunes.apple.com/us/app/mei-shang-mei-ke/id1146055295?l=zh&ls=1&mt=8";
                [[UIApplication sharedApplication] openURL:[NSURL URLWithString:updUrl]];
            } failure:nil];
        });
    }
}


弹窗类的实现

#import <Foundation/Foundation.h>

typedef void(^IWAlertSuccessBlock)();
typedef void(^IWAlertFailureBlock)();

@interface IWAlert : NSObject

/**
 弹窗 2个按钮

 @param target       源
 @param title        弹窗标题
 @param message      弹窗信息
 @param confirmTitle 确认按钮
 @param cancleTitle  取消按钮
 @param success      成功回调
 @param failure      失败回调
 */
+ (void)doubleAlertWithTarget:(id)target title:(NSString *)title message:(NSString *)message confirmTitle:(NSString *)confirmTitle cancleTitle:(NSString *)cancleTitle success:(IWAlertSuccessBlock)success failure:(IWAlertFailureBlock)failure;

@end

#import "IWAlert.h"

@implementation IWAlert


+ (void)doubleAlertWithTarget:(id)target title:(NSString *)title message:(NSString *)message confirmTitle:(NSString *)confirmTitle cancleTitle:(NSString *)cancleTitle success:(IWAlertSuccessBlock)success failure:(IWAlertFailureBlock)failure
{
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction *cancle = [UIAlertAction actionWithTitle:cancleTitle style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
        if (failure == nil) return;
        failure();
    }];
    [alert addAction:cancle];
    
    UIAlertAction *confirm = [UIAlertAction actionWithTitle:confirmTitle style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
        if (success == nil) return;
        success();
    }];
    [alert addAction:confirm];
    [target presentViewController:alert animated:YES completion:nil];
}

@end


要在Flutter iOS应用程序中实现应用程序版本更新,可以按照以下步骤进行操作: 1. 获取当前应用程序版本:在Flutter应用程序中,可以使用`package_info`插件获取当前应用程序的版本信息。可以在`pubspec.yaml`文件中添加以下依赖项: ```yaml dependencies: package_info: ^2.0.0 ``` 然后运行`flutter packages get`命令获取依赖项。 在Flutter代码中,可以使用以下代码获取当前应用程序的版本信息: ```dart import 'package:package_info/package_info.dart'; PackageInfo packageInfo = await PackageInfo.fromPlatform(); String version = packageInfo.version; ``` 2. 获取最新应用程序版本:为了实现应用程序版本更新,需要从服务器或其他途径获取最新应用程序版本信息。可以使用HTTP客户端库(例如`http`或`dio`)向服务器发送请求,并解析响应以获取最新版本信息。 3. 比较应用程序版本:获取当前应用程序版本和最新应用程序版本后,需要将它们进行比较,以确定是否需要进行应用程序版本更新。可以使用以下代码比较版本: ```dart int compareVersion(String currentVersion, String newVersion) { List<String> currentVersionSplit = currentVersion.split('.'); List<String> newVersionSplit = newVersion.split('.'); for (int i = 0; i < currentVersionSplit.length; i++) { int currentVersionPart = int.parse(currentVersionSplit[i]); if (newVersionSplit.length <= i) { return 1; } int newVersionPart = int.parse(newVersionSplit[i]); if (newVersionPart > currentVersionPart) { return 1; } else if (newVersionPart < currentVersionPart) { return -1; } } return 0; } ``` 如果返回值为1,则需要进行应用程序版本更新。 4. 显示应用程序版本更新提示:如果需要进行应用程序版本更新,可以显示一个提示对话框,提示用户进行应用程序版本更新。可以使用Flutter的`flutter_launcher_icons`插件生成应用程序图标,并将应用程序图标添加到提示对话框中。 5. 打开App Store进行应用程序版本更新:如果用户同意进行应用程序版本更新,可以使用Flutter的`url_launcher`插件打开App Store,让用户下载最新版本的应用程序。可以使用以下代码打开App Store: ```dart import 'package:url_launcher/url_launcher.dart'; Future<void> launchAppStore(String appStoreUrl) async { if (await canLaunch(appStoreUrl)) { await launch(appStoreUrl); } else { throw 'Could not launch App Store'; } } ``` 完成以上步骤后,就可以在Flutter iOS应用程序中实现应用程序版本更新了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值