Develop
2013.09.05 13:02
[ios] 앱에서 다른 앱 실행시키기
조회 수 18747 댓글 0
첨부 '1' |
|
---|
AppA 앱에서 AppB 앱을 실행시키기를 해보겠습니다.
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;
}
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
791 | Develop | [ios] GCD 변수 사용 예제 | hooni | 2013.10.01 | 12261 |
790 | Develop | [ios] UIView에서 상위 UIViewController 가져오기 | hooni | 2013.09.27 | 20425 |
789 | Etc | [svn] 콘솔에서 svn 사용시 레티나용 이미지 add 안될 때.. | hooni | 2013.09.25 | 38188 |
788 | System/OS | [mac] SVN 1.8 업데이트 방법 | hooni | 2013.09.24 | 15278 |
787 | Develop | [ios] 간단한 방법으로 OS버전 확인하기. | hooni | 2013.09.24 | 13501 |
786 | Etc | 영어. 외우면 도움되는 필수영어회화 표현 | hooni | 2013.09.09 | 23520 |
785 | Develop | [ios] Hybrid 앱 스터디 발표 자료 | hooni | 2013.09.06 | 13940 |
784 | Develop | [python] 애니팡, 캔디팡 매크로 | hooni | 2013.09.06 | 19351 |
783 | Develop | [ios] None IB vs. StoryBoard 샘플 소스 | hooni | 2013.09.06 | 17132 |
» | Develop | [ios] 앱에서 다른 앱 실행시키기 | hooni | 2013.09.05 | 18747 |
781 | Etc | [link] 유용한 사이트 링크. | hooni | 2013.08.19 | 91018 |
780 | Etc | 베지어 곡선 (Bezier curve) | hooni | 2013.08.18 | 229145 |