iOS는 앱을 파일과 연결합니다.

에 의해




브래드 라슨


파일 유형 처리는 iPhone OS 3.2의 새로운 기능이며 기존의 사용자 정의 URL 체계와 다릅니다. 특정 문서 유형을 처리하도록 응용 프로그램을 등록할 수 있으며 문서 컨트롤러를 사용하는 모든 응용 프로그램은 이러한 문서의 처리를 사용자에게 넘길 수 있습니다. 자신의 응용 프로그램.
예를 들어, 내 응용 프로그램 Molecules(소스 코드를 사용할 수 있음)는 이메일이나 지원되는 다른 응용 프로그램을 통해 받은 경우 .pdb 및 .pdb.gz 파일 형식을 처리합니다.
지원을 등록하려면 Info.plist에 다음과 같은 항목이 있어야 합니다.
<key>CFBundleDocumentTypes</key>  <array>      <dict>          <key>CFBundleTypeIconFiles</key>          <array>              <string>Document-molecules-320.png</string>              <string>Document-molecules-64.png</string>          </array>          <key>CFBundleTypeName</key>          <string>Molecules Structure File</string>          <key>CFBundleTypeRole</key>          <string>Viewer</string>          <key>LSHandlerRank</key>          <string>Owner</string>          <key>LSItemContentTypes</key>          <array>              <string>com.sunsetlakesoftware.molecules.pdb</string>              <string>org.gnu.gnu-zip-archive</string>          </array>      </dict>  </array>  
메일 및 문서를 표시할 수 있는 기타 응용 프로그램에서 지원되는 유형에 대한 아이콘으로 사용되는 두 개의 이미지가 제공됩니다. LSItemContentTypes 키를 사용하면 응용 프로그램에서 열 수 있는 UTI(Uniform Type Identifier) ​​배열을 제공할 수 있습니다. 목록을 보려면 시스템 정의 UTI의 경우 Apple의 Uniform Type Identifiers Reference를 참조하십시오.UTI에 대한 자세한 내용은 Apple의 Uniform Type Identifiers Overview에서 찾을 수 있습니다.이 기능은 Mac에서 포팅되었기 때문에 해당 가이드는 Mac 개발자 센터에 있습니다.
위의 예에서 사용된 UTI 중 하나는 시스템 정의이고 다른 하나는 응용 프로그램별 UTI입니다. 시스템의 다른 응용 프로그램에서 알 수 있도록 응용 프로그램별 UTI를 내보내야 합니다. 이 경우 다음과 같이 Info.plist에 섹션을 추가합니다.
<key>UTExportedTypeDeclarations</key>  <array>      <dict>          <key>UTTypeConformsTo</key>          <array>              <string>public.plain-text</string>              <string>public.text</string>          </array>          <key>UTTypeDescription</key>          <string>Molecules Structure File</string>          <key>UTTypeIdentifier</key>          <string>com.sunsetlakesoftware.molecules.pdb</string>          <key>UTTypeTagSpecification</key>          <dict>              <key>public.filename-extension</key>              <string>pdb</string>              <key>public.mime-type</key>              <string>chemical/x-pdb</string>          </dict>      </dict>  </array>  
이 특정 예는 MIME 유형com.sunsetlakesoftware.molecules.pdb에 해당하는 .pdb 파일 확장자를 가진 chemical/x-pdb UTI를 내보냅니다.
이 기능을 사용하면 애플리케이션에서 이메일에 첨부된 문서나 시스템의 다른 애플리케이션에서 문서를 처리할 수 있습니다. Mail에서 길게 눌러 특정 첨부 파일을 열 수 있는 애플리케이션 목록을 불러올 수 있습니다.
첨부 파일이 열리면 응용 프로그램이 시작되고 -application:didFinishLaunchingWithOptions: 응용 프로그램 대리자 메서드에서 이 파일의 처리를 처리해야 합니다. 메일에서 이러한 방식으로 로드된 파일은 그들이 도착한 이메일 상자에 해당하는 하위 디렉토리. 다음과 같은 코드를 사용하여 애플리케이션 위임 메소드 내에서 이 파일의 URL을 얻을 수 있습니다.
NSURL *url = (NSURL *)[launchOptions valueForKey:UIApplicationLaunchOptionsURLKey];  
이것은 사용자 정의 URL 스키마를 처리하는 데 사용한 것과 동일한 접근 방식입니다. 다음과 같은 코드를 사용하여 파일 URL을 다른 URL과 분리할 수 있습니다.
if ([url isFileURL])  {      // Handle file being passed in  }  else  {      // Handle custom URL scheme  }  

좋은 웹페이지 즐겨찾기