当前位置:编程学习 > wap >>

iphone/ipad应用的升级更新提醒和评分提醒

在使用iphone/ipad应用的时候,有时候应用有更新升级,appstore会提醒用户有相应的更新,程序中需要在用户打开应用的时候提醒用户更新,那么就需要自己在程序当中写一个提醒事项,简历弹出框提醒用户一下,就ok了!

具体代码分享给大家,请大家注意,必须要有app的id。那么你会想应用第一次没有id怎么办?审请上线的时候就会得到id了,到时候有了id直接填上去就行了。


首先写一个单例类:

 

//
//  AppUpdateGrade.h
//  QingDaoBroadcastIpad
//
//  Created by iHope on 13-7-23.
//  Copyright (c) 2013年 hlren. All rights reserved.
//  任海丽

#import <Foundation/Foundation.h>

@inte易做图ce AppUpdateGrade : NSObject
{
    NSString *appId; //app的id
    NSString *trackViewUrl; //app的地址
}
+(AppUpdateGrade*)sharedAppupdateGrade; //创建
-(void)appUpdate:(NSString *)appleID; //更新
-(void)appGrade:(NSString *)appleID; //评分

@end
//
//  AppUpdateGrade.m
//  QingDaoBroadcastIpad
//
//  Created by iHope on 13-7-23.
//  Copyright (c) 2013年 hlren. All rights reserved.
//

#import "AppUpdateGrade.h"

@implementation AppUpdateGrade

static AppUpdateGrade* appUpdateGrade = nil;
+(AppUpdateGrade*)sharedAppupdateGrade
{
    @synchronized(self)
    {
        if (appUpdateGrade == nil)
        {
            appUpdateGrade = [[self alloc] init];
        }
    }
    return appUpdateGrade;
}

//更新升级
-(void)appUpdate:(NSString *)appleID
{
    appId = appleID;
    //http://itunes.apple.com/lookup?id=xx
    
    //根据appid从苹果服务器上得到json数据,再从json数据中得到版本信息 
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    // 设置URL
    [request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@",appleID]]];
    // 设置HTTP方法
    [request setHTTPMethod:@"GET"];
    // 发送同步請求, 這裡得returnData就是返回得數據楽
    NSData *returnData = [NSURLConnection sendSynchronousRequest:request    returningResponse:nil error:nil];
    
    NSDictionary *jsonData = [NSJSONSerialization JSONObjectWithData:returnData options:0 error:nil];
    NSLog(@"%@",jsonData);
    
    NSArray *infoArray = [jsonData objectForKey:@"results"];
    if (infoArray.count!=0) {
        NSDictionary *releaseInfo = [infoArray objectAtIndex:0];
        NSString *latestVersion = [releaseInfo objectForKey:@"version"];
        NSString *trackViewUrl1 = [releaseInfo objectForKey:@"trackViewUrl"];//地址trackViewUrl
        trackViewUrl = trackViewUrl1; //地址
        double doubleUpdateVersion = [latestVersion doubleValue];
        
        
        //获取当前version版本信息
        //当前运行程序的版本信息,可以在 mainBundle 里面获取:
        NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary];
        NSString *currentVersion = [infoDict objectForKey:@"CFBundleVersion"];
        double doubleCurrentVersion = [currentVersion doubleValue];
        NSLog(@"doubleCurrentVersion:%f,%f",doubleCurrentVersion,doubleUpdateVersion);
        
        if (doubleCurrentVersion < doubleUpdateVersion) {
            
            UIAlertView *alert;
            alert = [[UIAlertView alloc] initWithTitle:@"app应用名称"
                                               message:@"有新版本,是否升级!"
                                              delegate: self
                                     cancelButtonTitle:@"取消"
                                     otherButtonTitles: @"升级", nil];
            alert.tag = 1001;
            [alert show];
        }
        
    }else{
        //无此应用
    }
    
}

//评分
-(void)appGrade:(NSString *)appleID{
    appId = appleID;
    BOOL neverGrade = [[[NSUserDefaults standardUserDefaults] objectForKey:@"neverGrade"] boolValue];
    if(neverGrade != YES) {
        //提醒评分 
        UIAlertView *alert;
        alert = [[UIAlertView alloc] initWithTitle:@"app应用名称"
                                           message:@"请去appstore给我们评分"
                                          delegate: self
                                 cancelButtonTitle:@"取消"
                                 otherButtonTitles: @"现在去",@"不再提醒 ", nil];
        alert.tag = 1000;
        [alert show];
    }
}
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    switch (alertView.tag) {
        case 1000:
        {
            //评分
            // Never Review Button
            if (buttonIndex == 2)
            {
                NSString *number = [NSString stringWithFormat:@"%d", YES];
                [[NSUserDefaults standardUserDefaults] setObject:number forKey:@"neverGrade"];
                [[NSUserDefaults standardUserDefaults] synchronize];
            }
            // Review Button
            else if (buttonIndex == 1)
            {
                NSString *number = [NSString stringWithFormat:@"%d", YES];
                [[NSUserDefaults standardUserDefaults] setObject:number forKey:@"neverGrade"];
                [[NSUserDefaults standardUserDefaults] synchronize];
                
                //"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=
                NSString *str = [NSString stringWithFormat:
                                 @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",
                                 appId ];
                
                [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
            }
        }
            break;
        case 1001:
        {
            //升级            
            if (buttonIndex == 1) {
                NSLog(@"%@",trackViewUrl);
                [[UIApplication sharedApplication] openURL:[NSURL URLWithString:trackViewUrl]];
                
            }
        }
            break;
        default:
            break;
    }
    
}
@end


1、更新升级

需要得到当前应用的version版本,获得之前版本的version,比较之下是否需要更新!

当前应用的version:

NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary];
        NSString *currentVersion = [infoDict objectForKey:@"CFBundleVersion"];

之前应用的version:

需要请求http://itunes.apple.com/lookup?id=appid来获取数据,分析出version;

2、应用评分

"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=appid“

直接打开这个链接就可以给应用评份;

 \
 


使用,导入#import "AppUpdateGrade.h"

 

 升级  
    [[AppUpdateGrade sharedAppupdateGrade]appUpdate:@"appid"]; 
    //评分  afterDelay秒  60*1==60分钟,表示1分钟后调用pinfen方法  
    [self performSelector:@selector(pinfen) withObject:self afterDelay:1]; 

//升级
    [[AppUpdateGrade sharedAppupdateGrade]appUpdate:@"appid"];
    //评分  afterDelay秒  60*1==60分钟,表示1分钟后调用pinfen方法
    [self performSelector:@selector(pinfen) withObject:self afterDelay:1];


 

 (void)pinfen 
{ 
    //评分  
    [[AppUpdateGrade sharedAppupdateGrade]appGrade:@"appid"]; 
} 

- (void)pinfen
{
    //评分
    [[AppUpdateGrade sharedAppupdateGrade]appGrade:@"appid"];
}

 

 

补充:移动开发 , IOS ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,