OpenURL URL Schemes, HTML에서 어플실행, 어플에서 어플실행, handleOpenURL 이용
요즘들어서 애플 결제 과금에 대한 고민을 많이 하는 것 같아서 공유해드립니다.
카드나 핸드폰 결제 페이지를 붙이면 애플에서 승인심사를 받는데, 다들 문제가 많죠!!!!
그래서 한 가지 방법을 제시할 가 합니다.
과금을 적용하는 데 좋은 방법은
과금 결제페이지는 홈페이지 즉, 모바일 웹페이지로하고
어플에서 사파리를 통한 결제페이지를 넘겼다가
결제가 끝나면 모바일 웹페이지에서 어플을 호출시키는 방법 입니다.
이럴 때 유용하게 이용하는 것이 OpenURL URL Schemes 입니다.
그냥 헤더처리 라고도 하더군요.
(1) 참고 url
1. http://iphonedevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
3. http://wiki.akosma.com/IPhone_URL_Schemes
(2) 설명
OpenURL URL Schemes, URL Schemes, handleOpenURL 이용방법 또는 Header, 헤더
라고 말하는 것을 간단히 말하면
test1234:// 와 같은 형태로 호출시 쓰이는 형태로,
홈페이지에서 http://와 같이 사용되는 형태의 머릿글 이라고 생각하면 좋겠다.
위에서 test1234는 어플 인증 App ID가 com.headercoco.test1234일 경우에 test1234를 말한다.
선언은 ㅇㅇㅇㅇ-info.plist 파일에 항목을 추가해야 한다.
1) info.plist에 URL Schemes 추가
2) 소스 어플프로그램AppDelegate.m에 handleOpenURL 메소드 추가
3) 다른 어플 또는 HTML에서 호출 사용 (HTML의 href를 이용 형태)
추가설명)Xocde에서 -info.plist 파일을 열고 URL Types를 추가하고 URL identifier에
com.yourcompany.myapp 형태로 입력하고 item0에 URL Schemes를 추가하여 item0에 url scheme에 연결될 스키마 이름을 myapp형태로 입력한다.
(3) 호출 예시
1) myapp://
2) myapp://some/path/here
3) myapp://?foo=1&bar=2
4) myapp://some/path/here?foo=1&bar=2
(4) 소스 코딩1) 소스 어플프로그램AppDelegate.m에 추가
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
// Do something with the url here
}
2) 사용 예시
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
if (!url) { return NO; }
NSString *URLString = [url absoluteString];
[[NSUserDefaults standardUserDefaults] setObject:URLString forKey:@"url"];
[[NSUserDefaults standardUserDefaults] synchronize];
return YES;
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
// 어플 자신이 호출된 경우에 얼럿창 띄우기
NSString *strURL = [url absoluteString];
UIAlertView *alertView= [[UIAlertView alloc] initWithTitle:@"call message"
message:strURL
delegate:nil
cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
[alertView release];
return YES;
}