Develop
2013.09.05 13:02
[ios] 앱에서 다른 앱 실행시키기
조회 수 18633 댓글 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형태로 입력합니다.
그림으로 보겠습니다.
![urlscheme.png](https://hooni.net/xe/files/attach/images/207/413/004/4e588377056463db764489c0038cd15d.png)
위와 같이 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;
}
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
981 | Develop | [c] 단기과정[01/06] sizeof, 실수표현, 메모리, 연산자 | hooni | 2003.04.23 | 6962 |
980 | Develop | [c] 단기과정[01/07] 제어문, 피보나치수열 | hooni | 2003.04.23 | 7440 |
979 | Develop | [c] 단기과정[01/08] 배열, 포인터 | hooni | 2003.04.23 | 7268 |
978 | Develop | [c] 단기과정[01/08] (다차원 + 배열)포인터, void 포인터 | hooni | 2003.04.23 | 7804 |
977 | Develop |
[c] 단기과정[01/08] 과제.. 파스칼 삼각형
![]() |
hooni | 2003.04.23 | 7298 |
976 | Develop |
[c] 단기과정[01/10] 과제.. swap(any data, ..)
![]() |
hooni | 2003.04.23 | 6934 |
975 | Develop |
[c] 단기과정[01/14] 파일 입출력
![]() |
hooni | 2003.04.23 | 6863 |
974 | Develop |
[c] 단기과정[01/14] 피보나치, 파스칼.. 파일입출력
![]() |
hooni | 2003.04.23 | 7116 |
973 | Develop |
[c] 단기과정[01/15] 피보나치, 파스칼.. 링크리스트
![]() |
hooni | 2003.04.23 | 7259 |
972 | Develop |
[c] 단기과정[01/17] 후위연산 스택 계산기..
![]() |
hooni | 2003.04.23 | 7255 |
971 | Develop | [c] 단기과정[01/24] 정렬 알고리즘 | hooni | 2003.04.23 | 6976 |
970 | Develop | [js] 새로고침(refresh)방법과 다른 페이지 바꾸기.. | hooni | 2003.04.23 | 6566 |