1. 程式人生 > 其它 >iOS 跳轉App Store進行評分

iOS 跳轉App Store進行評分

iOS 跳轉App Store進行評分

1.前言

遭遇4.2.2把我逼得沒辦法了,啥功能都懟上去了

2.實現

在 viewdidload 或者 viewwillappear 中判斷是否需要顯示評分,因為SKStoreReviewController 一年最多三次,所以我就無恥點相隔四個月呼叫一次

    NSDate *oldTime =  [[NSUserDefaults standardUserDefaults]objectForKey:@"storeStarTime"];
    if (oldTime) {
        //利用NSCalendar比較日期的差異
        NSCalendar *calendar = [NSCalendar currentCalendar];
   
        NSCalendarUnit unit = NSCalendarUnitMonth;//只比較月數差異
        //比較的結果是NSDateComponents類物件
        NSDateComponents *delta = [calendar components:unit fromDate:oldTime toDate:[NSDate date] options:0];
        if (delta.month >= 4) {
            [self showStore];
        }
    }else{
        [[NSUserDefaults standardUserDefaults]setObject:[NSDate date] forKey:@"storeStarTime"];
    }
    

喚起評分頁

-(void)showStore{
    if (@available(iOS 10.3, *)) {
        if([SKStoreReviewController respondsToSelector:@selector(requestReview)]) {// iOS 10.3 以上支援
        //防止鍵盤遮擋
        [[UIApplication sharedApplication].keyWindow endEditing:YES];
        [SKStoreReviewController requestReview];
        }else{
            NSString * nsStringToOpen = [NSString stringWithFormat: @"itms-apps://itunes.apple.com/app/id%@?action=write-review",@"1573880428"];//替換為對應的APPID
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:nsStringToOpen] options:@{} completionHandler:^(BOOL success) {
                
            }];
        }

    } else {
        NSString * nsStringToOpen = [NSString stringWithFormat: @"itms-apps://itunes.apple.com/app/id%@?action=write-review",@"1573880428"];//替換為對應的APPID
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:nsStringToOpen] options:@{} completionHandler:^(BOOL success) {
            
        }];
    }
    [[NSUserDefaults standardUserDefaults]setObject:[NSDate date] forKey:@"storeStarTime"];
}


附上APP地址: 一閱閱讀有想看小說的小夥伴可以試下 支援換源 支援自定義書源

本博文由博主根據資料或其他優秀博文整理而成,轉載請註明出處,謝謝!