

Nextrek
@ 1059
Nextrek / iOS / SafariArte / trunk / Pods / RFRateMe / RFRateMe / RFRateMe.m
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
// // RFRateMe.m // RFRateMeDemo // // Created by Ricardo Funk on 1/2/14. // Copyright (c) 2014 Ricardo Funk. All rights reserved. // #import "RFRateMe.h" #import "UIAlertView+NSCookbook.h" #define kNumberOfDaysUntilShowAgain 3 #define kAppStoreAddress @"https://itunes.apple.com/it/app/safari-darte/id1077660202?mt=8" #define kAppName [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleNameKey] @implementation RFRateMe +(void)showRateAlert { //If rate was completed, we just return if True BOOL rateCompleted = [[NSUserDefaults standardUserDefaults] boolForKey:@"RateCompleted"]; if (rateCompleted) return; //Check if the user asked not to be prompted again for 3 days (remind me later) BOOL remindMeLater = [[NSUserDefaults standardUserDefaults] boolForKey:@"RemindMeLater"]; if (remindMeLater) { NSDateFormatter *DateFormatter=[[NSDateFormatter alloc] init]; [DateFormatter setDateFormat:@"yyyy-MM-dd"]; NSString *start = [[NSUserDefaults standardUserDefaults] objectForKey:@"StartDate"]; NSString *end = [DateFormatter stringFromDate:[NSDate date]]; NSDateFormatter *f = [[NSDateFormatter alloc] init]; [f setDateFormat:@"yyyy-MM-dd"]; NSDate *startDate = [f dateFromString:start]; NSDate *endDate = [f dateFromString:end]; NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents *components = [gregorianCalendar components:NSDayCalendarUnit fromDate:startDate toDate:endDate options:0]; if ((long)[components day] <= kNumberOfDaysUntilShowAgain) return; } //Show rate alert UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(kAppName, @"") message:NSLocalizedString(@"RateMessage", nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"NeverAskMeAgain", @"") otherButtonTitles:NSLocalizedString(@"RateItNow", @""),NSLocalizedString(@"RemindMeLater",@""), nil]; [alertView showWithCompletion:^(UIAlertView *alertView, NSInteger buttonIndex) { switch (buttonIndex) { case 0: { NSLog(@"No, thanks"); [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"RateCompleted"]; [[NSUserDefaults standardUserDefaults] synchronize]; break; } case 1: { NSLog(@"Rate it now"); [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"RateCompleted"]; [[NSUserDefaults standardUserDefaults] synchronize]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:kAppStoreAddress]]; break; } case 2: { NSLog(@"Remind me later"); NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd"]; NSDate *now = [NSDate date]; [[NSUserDefaults standardUserDefaults] setObject:[dateFormatter stringFromDate:now] forKey:@"StartDate"]; [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"RemindMeLater"]; [[NSUserDefaults standardUserDefaults] synchronize]; break; } } }]; } +(void)showRateAlertAnyway{ //Show rate alert UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(kAppName, @"") message:NSLocalizedString(@"RateMessage", nil) delegate:nil cancelButtonTitle:nil otherButtonTitles:NSLocalizedString(@"RateItNow", @""),NSLocalizedString(@"RemindMeLater",@""), nil]; [alertView showWithCompletion:^(UIAlertView *alertView, NSInteger buttonIndex) { switch (buttonIndex) { case 0: { NSLog(@"Rate it now"); [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"RateCompleted"]; [[NSUserDefaults standardUserDefaults] synchronize]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:kAppStoreAddress]]; break; } case 1: { NSLog(@"Remind me later"); NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd"]; NSDate *now = [NSDate date]; [[NSUserDefaults standardUserDefaults] setObject:[dateFormatter stringFromDate:now] forKey:@"StartDate"]; [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"RemindMeLater"]; [[NSUserDefaults standardUserDefaults] synchronize]; break; } } }]; } +(void)showRateAlertAfterTimesOpened:(int)times { //Thanks @kylnew for feedback and idea! BOOL rateCompleted = [[NSUserDefaults standardUserDefaults] boolForKey:@"RateCompleted"]; if (rateCompleted) return; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; int timesOpened = (int)[defaults integerForKey:@"timesOpened"]; [defaults setInteger:timesOpened+1 forKey:@"timesOpened"]; [defaults synchronize]; NSLog(@"App has been opened %d times", (int)[defaults integerForKey:@"timesOpened"]); if([defaults integerForKey:@"timesOpened"] >= times){ [RFRateMe showRateAlert]; } } @end |
Commits for Nextrek/iOS/SafariArte/trunk/Pods/RFRateMe/RFRateMe/RFRateMe.m
Revision | Author | Commited | Message |
---|---|---|---|
1059
![]() |
![]() |
Mon 08 Feb, 2016 20:39:30 +0000 | Apple release. |
438
![]() |
![]() |
Fri 24 Jul, 2015 08:27:56 +0000 | added alertview for to vote |
376
![]() |
![]() |
Fri 17 Jul, 2015 09:34:29 +0000 | localized string |
319
![]() |
![]() |
Tue 14 Jul, 2015 09:44:30 +0000 | added alertview after buy route |
308 |
![]() |
Mon 13 Jul, 2015 15:54:46 +0000 | added RFAlert |