2013-12-17 41 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?

0

隨着ios7使用self.canDisplayBannerAds相反,它更簡單,更直接的

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
    bool adsRemoved = [userDefaults boolForKey:@"removeAds"]; 
    self.canDisplayBannerAds=!adsRemoved; 
} 
相關問題