2012-07-12 1 views
0

나는 현재 내 인앱 구매 버튼 '복원','구입'프롬프트가 표시되지 않는 App 구입시 복원 하시겠습니까? 가능한가?

이이 일이 있지만, 기본적으로는 그것은에있는 것처럼 (업그레이드를 '구매'하는 과정을 통해 사용자 중반 방법을 요구하지 보통 나는 걱정에 - 응용 프로그램)이 것이다

A)는 아마도 다른이 그래서 내가 그것을 바꿀 수있는 방법이 있나요 그들이 다시

을 지불하는 생각으로 사용자를 놀라게) 사과 B에 의해 거부 메시지?

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

    UIAlertView *alert; 

    alert = [[[UIAlertView alloc] initWithTitle:@"Restoring Your Purchases, Please Wait..." message:nil delegate:self cancelButtonTitle:nil otherButtonTitles: nil] autorelease]; 
    [alert show]; 

    UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 

    // Adjust the indicator so it is up a few pixels from the bottom of the alert 
    indicator.center = CGPointMake(alert.bounds.size.width/2, alert.bounds.size.height - 50); 
    [indicator startAnimating]; 
    [alert addSubview:indicator]; 
    [indicator release]; 

    [alert dismissWithClickedButtonIndex:0 animated:YES]; 

    [[MKStoreManager sharedManager] buyFeature];= 
} 

-(void)productPurchased 
{ 
    for (UIView *view in self.view.subviews) 
    { 
     if (view.tag==2000) 
     { 
      [view removeFromSuperview]; 
     } 
    } 

    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Thank you" message:@"Your restore was successful." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; 
    [alert show]; 
    [alert release]; 
} 

// error restore 
- (void)failed 
{ 
    for (UIView *view in self.view.subviews) 
    { 
     if (view.tag==2000) 
     { 
      [view removeFromSuperview]; 
     } 
    } 

    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Error" message:@"Your restore has failed." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; 
    [alert show]; 
    [alert release]; 
} 

답변

1

사실 실제로 가능합니다. 내 answer과 다소 비슷한 question을 참조하십시오.

기본적으로 복원 버튼을 누르면 사용자는 계정을 확인해야합니다. 이것은 StoreKit에 의해 처리됩니다. IA 구매가 계정에 대해 발견되면 프로세스는 처음 구매할 때와 동일한 방법으로 구매 복원을 시작해야하며 실제로 구매할 것인지 묻는 메시지가 표시되지 않습니다.

+0

안녕을 썼다, 나는 순간, 그런 작은 기능 추가에 대한 실망에서 그것을 코드에 어려움을 겪고 있어요 인정해야합니다! 위의 코드를 위 코드로 대체 하시겠습니까? 또는 위의 코드를 수정하는 데 도움을 줄 수 있습니까? 친절한 답변 Agnelli – Agnelli

+1

불행히도 여기에 제시된 도움말을 통해이 문제를 파악해야합니다. SDK를 익히고 어떻게 물건을 적절히 조합하여 작동 시키는가에 대해 어떻게 생각하십니까? ** ** ** ** ** 알아낼 수없는 경우 추가 정보는 내 프로필을 참조하십시오. – WrightsCS

0

MKStoreKit을 사용하고 있습니다. 앱에서 iCloud를 활성화하면 나머지는 MKStoreKit이 처리합니다. 다른 기기는 상점 페이지를 열지 않고도 구매 한 항목을 '구입 한'항목으로 '인식'합니다.

PS : 나는 당신의 대답에 대한 감사를 MKStoreKit