OpenURL URL Schemes, URL Schemes, handleOpenURL 이용방법 또는 Header, 헤더
라고 말하는 것을 간단히 말하면
AppB:// 와 같은 형태로 호출시 쓰이는 형태로,
홈페이지에서 http://와 같이 사용되는 형태의 머릿글 이라고 생각하면 좋습니다.
위에서 AppB는 어플 인증 App ID가 com.test. AppB일 경우에 AppB를 말합니다.
호출 받는 쪽, 즉, AppB 에서 해줘야 하는 부분을 살펴보겠습니다.
선언은 projectname-info.plist 파일에 항목을 추가해야 합니다.
1) info.plist에 URL Schemes 추가
2) 소스 어플프로그램AppDelegate.m에 handleOpenURL 메소드 추가
3) 다른 어플 또는 HTML에서 호출 사용 (HTML의 href를 이용 형태)
추가설명)Xocde에서 -info.plist 파일을 열고 URL Types를 추가하고 URL identifier에
com. test.AppA 형태로 입력하고 item0에 URL Schemes를 추가하여 item0에 url scheme에 연결될 스키마 이름을 AppB형태로 입력합니다.
그림으로 보겠습니다.
위와 같이
plist에다가. URL types 를 만들어
URL Schemes 와 URL identifier 을 정해서 지정한대로 설정해주어야 합니다.
이번엔 AppA, 즉 호출하는 쪽에서 호출하는 방법에 대해 알아보겠습니다.
간단히 버튼을 하나 만들어서 버튼이벤트에 호출하는 메소드를 추가했습니다.
BOOL isInstalled = [[UIApplication sharedApplication] openURL: [NSURL URLWithString:@"AppB://"];
if (!isInstalled) {
// 설치 되어 있지 않습니다! 앱스토어로 안내...
//[[UIApplication sharedApplication] openURL: [NSURL URLWithString: appstoreurl]];
}
위와 같이 호출하면 호출이 됩니다.
그런데 정보를 넘기고 싶으시다고요? 그럼 또 방법이 있죠 ㅎㅎㅎㅎ
[[UIApplication sharedApplication] openURL: [NSURL URLWithString:@"AppB://"];
이렇게 호출을 해줄때 AppB:// 이 뒷부분에 넘기고 싶은 정보를 넘겨주시면됩니다.
[[UIApplication sharedApplication] openURL: [NSURL URLWithString:@"AppB://넘기고 싶은정보"];
이렇게요,
그럼 AppB에서는
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
여기에서 메세지를 받을 수 있습니다.
간단하게 받는 메세지 전부를 Alert창으로 띄우는 예제를 보시면,
- (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;
}위와 같습니다.
출처 : http://blowmj.tistory.com/54
'프로그래밍 > iOS' 카테고리의 다른 글
ASIHttpRequest를 ARC와 함께 쓰기 (XCode 4.2) (1) | 2011.11.29 |
---|---|
OpenCV on iOS (iOS에서 OpenCV 빌드 및 설정하기) (1) (0) | 2011.11.29 |
OpenURL URL Schemes, HTML에서 어플실행, 어플에서 어플실행, handleOpenURL 이용 (0) | 2011.11.25 |
XCODE, 네비게이션바의 Function 목록에 함께 나오는 주석문 작성하기 (0) | 2011.11.08 |
컨텐츠의 사이즈에 맞추어 UILabel 크기 변경하기 (0) | 2011.11.02 |