2013-12-17 1 views
1

인앱 구매로 광고를 제거하려고하지만 작동하지 않습니다. 내 앱을 열면 배너가 나타납니다. 배너를 탭하면 제대로 작동하고 있습니다. 그러나 몇 초 후에 그것은 사라지고 몇 분 후에 다시 나타난다. 그냥 같은 화면을 유지. 이 코드가 내 코드에 맞습니까? 인앱 구매로 광고 제거

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    NSUserDefaults *saveapp = [NSUserDefaults standardUserDefaults]; 
    bool saved = [saveapp boolForKey:k_Save]; 
    if (!saved) { 
     /// not save code here 
    } else { 
     ///saved code here 
     Label.text = @"item has been purchased"; 
    } 

} 

-(void)bannerViewDidLoadAd:(ADBannerView *)banner { 
    NSUserDefaults *saveapp = [NSUserDefaults standardUserDefaults]; 
    bool saved = [saveapp boolForKey:k_Save]; 
    if (!saved) { 
     /// not save code here 
     [UIView beginAnimations:nil context:NULL]; 
     [UIView setAnimationDuration:1]; 
     [banner setAlpha:1]; 
     [UIView commitAnimations]; 
    } else { 
     ///saved code here 
    } 
} 

-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error { 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1]; 
    [banner setAlpha:0]; 
    [UIView commitAnimations]; 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

을 저장하기위한 것입니다
- (IBAction)PurchaseItem:(id)sender { 
     _purchaseController = [[PurchasedViewController alloc] initWithNibName:nil bundle:nil]; 
     _purchaseController.productID = @"com.myname.test.iap1"; 
     [[SKPaymentQueue defaultQueue] addTransactionObserver:_purchaseController]; 
     [self presentViewController:_purchaseController animated:YES completion:NULL]; 
     [_purchaseController getProductID:self]; 
    } 

    -(void)Purchased { 
     Label.text = @"item has been purchased"; 
     iadBanner.hidden = YES; 
     NSUserDefaults *saveapp = [NSUserDefaults standardUserDefaults]; 
     [saveapp setBool:TRUE forKey:k_Save]; 
     [saveapp synchronize]; 
    } 



- (IBAction)BuyProduct:(id)sender { 
    SKPayment *payment = [SKPayment paymentWithProduct:_product]; 
    [[SKPaymentQueue defaultQueue] addPayment:payment]; 
} 



- (IBAction)Restore:(id)sender { 
    [[SKPaymentQueue defaultQueue] addTransactionObserver:self]; 
    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 
} 

-(void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue { 
    [self UnlockPurchase]; 
} 

-(void)getProductID:(ViewController *)viewController { 
    _homeViewController = viewController; 
    if ([SKPaymentQueue canMakePayments]) { 
     SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:self.productID]]; 
     request.delegate = self; 
     [request start]; 
    } else 
     _productDescription.text = @"Please enable in app purchase in your settings"; 
} 

#pragma mark _ 
#pragma mark SKProductsRequestDelegate 

-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response { 
    NSArray *products = response.products; 
    if (products.count != 0) { 
     _product = products[0]; 
     _buyButton.enabled = YES; 
     _productTitle.text = _product.localizedTitle; 
     _productDescription.text = _product.localizedDescription; 
    } else { 
     _productTitle.text = @"Product Not Found"; 
    } 
    products = response.invalidProductIdentifiers; 
    for (SKProduct *product in products) { 
     NSLog(@"Product not Found: %@", product); 
    } 
} 

-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions { 
    for (SKPaymentTransaction *transaction in transactions) { 
     switch (transaction.transactionState) { 
      case SKPaymentTransactionStatePurchased:[self UnlockPurchase]; 
       [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 
       break; 
      case SKPaymentTransactionStateFailed:NSLog(@"Transaction Failed"); 
       [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 
      default: 
       break; 

     } 
    } 
} 

-(void)UnlockPurchase { 
    _buyButton.enabled = NO; 
    [_buyButton setTitle:@"Purchased" forState:UIControlStateDisabled]; 
    [_homeViewController Purchased]; 
} 

답변

0

글쎄, 내가 볼 적어도 하나의 잠재적 인 문제는 당신이 숨기려고한다는 것입니다 :

iadBanner.hidden = YES; 

하지만 해당 속성이 표시되지 않습니다 다른 곳에서는 언급하지 않았다. 합성 되었습니까? IB에 갇혔어요? iOS7에 사용 self.canDisplayBannerAds와

0

대신에, 그보다 쉽고 정직

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
    bool adsRemoved = [userDefaults boolForKey:@"removeAds"]; 
    self.canDisplayBannerAds=!adsRemoved; 
} 
관련 문제