iOS - OpenURL으로 HTML에서 어플 실행

by digipine posted Nov 01, 2017
?

Shortcut

PrevPrev Article

NextNext Article

ESCClose

Larger Font Smaller Font Up Down Go comment Print

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

 

2. http://docs.burstly.com/guides/in-app-purchase-quick-start-guide.html#giving-your-app-an-openurl-url-scheme

 

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;
}  

TAG •