Tag Archives: UIApplication

[iPhone] URL스키마를 이용한 다른 어플리케이션 실행하기

아이폰 어플리케이션은 다른 외부의 어플리케이션을 URL을 사용하여 실행 할 수 있습니다. 예를 들어 다음의 어플리케이션들을 이와같은 URL을 이용하여 실행할 수 있습니다.

1. 일반 웹브라우저 호출

내가 원하는 임의의 페이지로 이동하는 방법은 간단합니다. 앞으로 소개해 드릴 방법 역시 다음과 같은 방법으로 URL을 호출하시면 됩니다.
[code]NSURL *url = [NSURL URLWithString:@”http://theeye.pe.kr”];
[[UIApplication sharedApplication] openURL:url];[/code]

2. 구글맵 실행

다음과 같이 구글맵은 검색을 위한 문자열을 사용하여 원하는 위치로 이동을 할 수 있습니다.

http://maps.google.com/maps?q=${QUERY_STRING}

여기서 중요한것은 ${QUERY_STRING}을 사용하기 위해서는 URL 인코딩을 하여야 한다는 것입니다. 간단한 예제는 다음과 같습니다.
[code]// 쿼리문 생성
NSString* searchQuery = @”1 Infinite Loop, Cupertino, CA 95014″;
 
// 특수 문자 처리를 위해 인코딩을 합니다.
searchQuery = [addressText stringByAddingPercentEscapesUsingEncoding:
                      NSUTF8StringEncoding];
 
// URL 문자열을 생성합니다.
NSString* urlString = [NSString stringWithFormat:
                              @”http://maps.google.com/maps?q=%@”,
                              searchQuery];
 
// 실행
[[UIApplication sharedApplication]
  openURL:[NSURL URLWithString:urlText]];[/code]

3. 메일 에이전트 실행

위와 마찬가지로 매우 쓸만하고 간단하고 빠르게 메일을 발송할 수 있는 메일 에이전트를 호출합니다. 기본적으로 들어있는 것을 호출하는 것뿐이지만 받는 사람 주소가 미리 입력되어있습니다. 메일을 발송하기 위한 기본적인 형태는 HTML의 그것과 매우 똑같습니다.

mailto://${EMAIL_ADDRESS}

예를 들어 test@abcd.com으로 발송하기 위해서는 다음과 같이 사용하면 됩니다.
[code][[UIApplication sharedApplication] openURL:[NSURL URLWithString:
  @”mailto://test@abcd.com”]];[/code]

4. 전화걸기 (아이폰에서만 사용 가능)

마찬가지로 openURL을 사용하여 전화도 걸 수 있습니다. 한가지 장점은 전화를 종료하였을 때 어플리케이션으로 복귀를 할 수 있다는 점입니다. J2ME나 WML에서 사용하는 UML 스키마의 형태와 비슷합니다. 예를 들어 02-1234-1234로 전화를 걸 경우 다음과 같이 하면 됩니다.
[code][[UIApplication sharedApplication] openURL:[NSURL URLWithString:@”tel://0212341234″]];[/code]

5. SMS 보내기

전화걸기와 마찬가지로 아이팟 터치등에서는 사용할 수 없습니다. 매우 빠르게 SMS 클라이언트를 호출 할 수 있습니다. SMS의 URL은 전화와 달리 //를 사용하지 않습니다.

sms:${PHONENUMBER_OR_SHORTCODE}

[code][[UIApplication sharedApplication] openURL:[NSURL URLWithString:@”sms:55555″]];[/code]

6. 앱스토어 실행하기

앱스토어에서 나의 어플리케이션의 구매 버튼이 있는 페이지로 바로 이동시키는것은 꽤 중요한 일입니다. 앱스토어 링크의 경우엔 따로 URL스키마를 사용할 필요가 없습니다. 단지 아이튠즈의 URL링크를 그대로 사용하면 됩니다. URL이 다음과 같이 보인다고 가정하겠습니다.

[code]NSURL *appStoreUrl = [NSURL URLWithString:@”http://itunes.apple.com/us/app/id396402081?mt=8″];
[[UIApplication sharedApplication] openURL:appStoreUrl];[/code]

잘 되는군요^^

출처: http://iphonedevelopertips.com/cocoa/launching-other-apps-within-an-iphone-application.html

[iPhone] 어플종료후에 모바일 사파리로 특정 사이트 접속하기

프로그램을 사용중에 프로그램이 종료되면서 모바일 사파리가 실행되면서 웹페이지에 접속되는 경우를 볼 수 있습니다.

다음과 같은 방법으로 어플리케이션 실행중에 중단을 하고 모바일 사파리를 띄워 웹 사이트에 접속할 수 있습니다.

[code][[UIApplication sharedApplication] openURL:[NSURL URLWithString:@”http://theeye.pe.kr”]];[/code]

멀티태스킹은 안되는지라, 현재 실행중인 프로그램은 바로 죽게 됩니다. 추가로 앱스토어로 바로 이동하는 방법은 다음과 같습니다.

[code]- (void)applicationDidFinishLaunching:(UIApplication *)application {
    // 버튼을 생성한다.
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [button    setTitle:@”Go to Appstore” forState:UIControlStateNormal];
    [button setFrame:CGRectMake(30.0f, 50.0f, 200.0f, 30.0f)];
    [button addTarget:self action:@selector(launchAppStore:) forControlEvents:UIControlEventTouchDown];
   
    // 버튼을 window에 붙인다.
    [window addSubview:button];
    [window makeKeyAndVisible];
}

– (void)launchAppStore:(id)sender {
    // 버튼이 눌러지면 해당 페이지로 이동한다.
    NSString *iTunesLink = @”itms://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=304878510&mt=8″;
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
}[/code]

사실 주소의 프로토콜은 itms가 아닌 http로 해도 상관없습니다만, 위의 방법이 좀더 직관적이고 리다이렉트없이 빨리 뜨는것 같습니다.

이동하고 싶은 앱의 URL을 알아내는 방법은 아이튠즈에서 해당 앱스의 이름을 오른쪽 클릭하면 URL을 알아낼 수 있습니다.

도메인의 호스트영역이 itunes로 되어있는데 그 부분을 위와 같이 phobos로 수정하여 사용하시면 됩니다.

애플과 수익을 분배하는 affiliate에 가입하여 사용을 원하신다면 [이곳]의 글을 참고하시기 바랍니다.
1160771198.zip