앱에서 InApp 구매를 설정 중입니다.앱 구매시 : 구매보기 컨트롤러에 제품 정보가 표시되지 않음
"구매 액세스"버튼이있는 하나의보기 컨트롤러 (메인보기 컨트롤러)가 있습니다. 이 버튼을 탭하면 다음 View Controller (Purchase View Controller)로 이동해야합니다.
문제는 PurchaseViewController
에 InApp 구매에 대한 정보가 표시되지 않습니다. 제품 제목에 UILabel
콘센트를 설정하고 제품 설명에 UITextView
을 설정했지만 새로 고치거나 해당 텍스트를 채우는 것은 없습니다.
제품 ID는 MainViewController
입니다.
무엇이 붙어 있나요?
PurchaseViewController.h
@interface PurchaseViewController : UIViewController
<SKPaymentTransactionObserver, SKProductsRequestDelegate>
@property (strong, nonatomic) SKProduct *product;
@property (strong, nonatomic) NSString *productID;
@property (strong, nonatomic) IBOutlet UILabel *productTitle;
@property (strong, nonatomic) IBOutlet UIButton *buyButton;
@property (strong, nonatomic) IBOutlet UITextView *productDescription;
- (IBAction)buyProduct:(id)sender;
- (void)getProductInfo:(UIViewController *)viewController;
@property (nonatomic) int buttonNumber;
@end
PurchaseViewController.m
#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);
}
}
- (IBAction)buyProduct:(id)sender {
SKPayment *payment = [SKPayment paymentWithProduct:_product];
[[SKPaymentQueue defaultQueue] addPayment:payment];
}
#pragma mark SKPaymentTransactionObserver
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {
for (SKPaymentTransaction *transaction in transactions) {
switch (transaction.transactionState) {
case SKPaymentTransactionStatePurchased:
[self unlockFeature];
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
break;
case SKPaymentTransactionStateFailed:
NSLog(@"Transaction Failed");
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
break;
default:
break;
}
}
}
편집 : 나는 PurchaseViewController
부하를 단지 벌금 NSLog
의 productTitle
및 productDescription
을 받고 있지만, 시간을 기준으로하고있어, 그들에 대한 텍스트는 아직 업데이트되지 않았다. 그 방법들은 viewDidLoad
후에 호출되는 것 같습니다.
나는 당신과 똑같은 문제가 있습니다. 대답 좀 상세 해 주시겠습니까? – GoldXApp
안녕하세요 @ GoldXApp, 죄송합니다 Stack Overflow 같은 주제 로이 질문을 마감했다. – Realinstomp