사용자 정의 URL 구성표를 통해 iPhone 앱 시작하기

iPhone SDK의 가장 멋진 기능 중 하나는 사용자 지정 URL 체계에 "바인딩"하고 해당 체계를 사용하여 브라우저나 iPhone의 다른 응용 프로그램에서 자체적으로 실행하는 응용 프로그램의 기능입니다. 너무 간단하여 응용 프로그램에 사용하지 않는 것은 거의 범죄입니다!
시작하기 전에 애플리케이션이 URL에 어떻게 응답하기를 원하는지 파악해야 합니다. 사용자 지정 체계를 사용하는 가장 간단한 방법은 "깨우기"입니다. 그러나 URL을 통해 애플리케이션에 정보를 전달할 수도 있습니다. , 그렇게 함으로써 애플리케이션이 깨어났을 때 다른 일을 할 수 있도록 합니다.

사용자 정의 URL 스키마 등록


응용 프로그램이 시작되면 무엇을 하고 싶든 첫 번째 단계는 iPhone에 사용자 정의 URL 구성표를 등록하는 것입니다.이 작업은 응용 프로그램의 프로젝트 폴더에 있는 info.plist 파일을 통해 수행됩니다(참고: 동일한 파일 사용자 정의 아이콘을 정의하도록 변경합니다).
기본적으로 XCode는 열리면 그래픽 UI에서 파일을 편집합니다.어떤 사람들에게는 더 쉬울 수 있는 텍스트 모드에서 info.plist 파일을 직접 편집할 수 있습니다.
1단계. 마우스 오른쪽 버튼을 클릭하고 "행 추가"


2 단계. "URL 유형"을 키로 선택하십시오.


3단계. "항목 1"을 확장하고 URL 식별자에 대한 값을 제공합니다. 이 값은 모든 값이 될 수 있지만 규칙은 "역 도메인 이름"(예: "com.myapp")을 사용하는 것입니다.


4단계. 이번에는 "항목 1"에 다른 행을 추가합니다.


5단계. "URL 구성표"를 키로 선택합니다.


6단계. URL 구성표가 될 문자를 입력합니다(예: "myapp://"는 "myapp"입니다.) 이 섹션에 추가하면 하나 이상의 구성표가 등록될 수 있습니다. 하다.


참고: 텍스트 편집기에서 info.plist 파일을 열면 다음이 파일에 추가된 것을 볼 수 있습니다…




CFBundleURLTypes
 
    CFBundleURLSchemes
 
      myapp
 
    CFBundleURLName
    com.yourcompany.myapp




선택적으로 URL 처리


이제 URL이 등록되었습니다. 누구나 귀하의 구성표를 사용하여 URL을 열어 응용 프로그램을 시작할 수 있습니다.
다음은 몇 가지 예입니다...




myapp://
 
myapp://some/path/here
 
myapp://?foo=1&bar=2
 
myapp://some/path/here?foo=1&bar=2




iPhone SDK는 위의 URL에 대한 응답으로 애플리케이션을 시작할 때 UIApplicationDelegate에 메시지를 보냅니다.
사용자 정의 처리기를 제공하려면 대리자에서 메시지에 대한 구현을 제공하기만 하면 됩니다.예를 들면 다음과 같습니다.




- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 
{
  // Do something with the url here
}




일반적인 기술은 전달된 URL을 구문 분석하고 응용 프로그램의 다양한 보기에서 사용할 매개변수를 가져와서 사용자 환경설정에 저장하는 것입니다. 아래는 URL을 값 매개변수 "url"로 저장하는 예입니다. 그냥 그런 식으로 …




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




이제 다른 사람들이 귀하의 애플리케이션을 깨우고 정보를 전달할 수 있도록 하는 데 필요한 모든 것을 갖추었습니다!

좋은 웹페이지 즐겨찾기