2011년 11월 11일 금요일

iOS alert view 클릭시 iTunes 앱 구매로 연결하기


#ifdef FREE_APP
        if(mArcadeLock)
        {
            UIAlertView *alert = [[UIAlertView alloc]initWithTitle:NSLocalizedString(@"lock", @"")
                                                           message:NSLocalizedString(@"free", @"")
                                                          delegate:self
                                                 cancelButtonTitle:nil
                                                 otherButtonTitles:NSLocalizedString(@"OK", @""),NSLocalizedString(@"Purchase", @""), nil];
            alert.tag = 1;
            [alert show];
            [alert release];
            return;  
        }
#endif  


- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    //구매 사이트 연결
    if ( buttonIndex == 1 && alertView.tag == 1)
    {
        NSURL * url = [[NSURL alloc]initWithString:NSLocalizedString(@"URL", @"")];
        [[UIApplication sharedApplication] openURL:url];
        [url release];
    }
}

UIAlertView가 여러개 있을때 어떤 AlertView에서 온 이벤트인지 구분하는 방법은
alert.tag = 값을 주고

alertView clickedButtonAtIndex: 메서드에서 분기하면된다.

NSURL 로 url을 문자열로 만들고
[[UIApplication sharedApplication] openURL:url];
로 브라우저를 링크 할수 있다.

위에 예제는 실제 sudok9에서 사용하는 것으로 로컬라이제인션을 고려해서
NSLocalizedString을 이용했고
kr / us에 따라 다른 URL을 이용하도록 하였다.

Localizable.strings 파일에 아래와 같이. (KR) 일때
"URL" = "http://itunes.apple.com/kr/app/id465633051?mt=8&ls=1";

댓글 없음: