การจัดการประเภทไฟล์นั้นใหม่กับ iPhone OS 3.2 และแตกต่างจากโครงร่าง URL ที่กำหนดเองที่มีอยู่แล้ว คุณสามารถลงทะเบียนแอปพลิเคชันของคุณเพื่อจัดการเอกสารบางประเภทและแอปพลิเคชันใด ๆ ที่ใช้ตัวควบคุมเอกสารสามารถส่งมอบการประมวลผลเอกสารเหล่านี้ไปยังแอปพลิเคชันของคุณเอง
ตัวอย่างเช่นแอปพลิเคชันของฉันโมเลกุล (ซึ่งมีซอร์สโค้ดอยู่) จัดการกับประเภทไฟล์. 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>
มีรูปภาพสองภาพที่จะใช้เป็นไอคอนสำหรับประเภทที่รองรับใน Mail และแอปพลิเคชันอื่น ๆ ที่สามารถแสดงเอกสารได้ LSItemContentTypes
ที่สำคัญช่วยให้คุณให้อาร์เรย์ของตัวบ่งชี้ประเภท Uniform (อุทิศ) ที่โปรแกรมของคุณสามารถเปิด สำหรับรายชื่อของระบบกำหนดอุทิศให้ดูที่แอปเปิ้ลUniform ประเภทตัวบ่งชี้การอ้างอิง รายละเอียดเพิ่มเติมเกี่ยวกับการอุทิศสามารถพบได้ในแอปเปิ้ลUniform ประเภทภาพรวมของตัวบ่งชี้ คำแนะนำเหล่านั้นอยู่ในศูนย์นักพัฒนาของ Mac เพราะความสามารถนี้ได้รับการส่งผ่านจาก Mac
หนึ่งใน UTIs ที่ใช้ในตัวอย่างด้านบนคือกำหนดโดยระบบ แต่อีกตัวหนึ่งเป็น 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>
ตัวอย่างนี้โดยเฉพาะอย่างยิ่งการส่งออกcom.sunsetlakesoftware.molecules.pdb
UTI มีนามสกุลไฟล์ .pdb chemical/x-pdb
สอดคล้องกับชนิดไมม์
แอปพลิเคชันของคุณจะสามารถจัดการเอกสารที่แนบมากับอีเมลหรือจากแอปพลิเคชันอื่น ๆ ในระบบได้ ใน Mail คุณสามารถแตะค้างเพื่อแสดงรายการแอปพลิเคชันที่สามารถเปิดสิ่งที่แนบมา
เมื่อเปิดสิ่งที่แนบมาแอปพลิเคชันของคุณจะเริ่มต้นขึ้นและคุณจะต้องจัดการกับการประมวลผลของไฟล์นี้ใน-application:didFinishLaunchingWithOptions:
วิธีการมอบหมายแอปพลิเคชันของคุณ ดูเหมือนว่าไฟล์ที่โหลดในลักษณะนี้จาก Mail จะถูกคัดลอกไปยังไดเรกทอรีเอกสารของแอปพลิเคชันของคุณภายใต้ไดเรกทอรีย่อยที่สอดคล้องกับกล่องอีเมลที่พวกเขาเข้ามาคุณสามารถรับ URL สำหรับไฟล์นี้ภายในวิธีมอบหมายตัวแทนโดยใช้รหัสดังนี้
NSURL *url = (NSURL *)[launchOptions valueForKey:UIApplicationLaunchOptionsURLKey];
โปรดทราบว่านี่เป็นวิธีการเดียวกับที่เราใช้ในการจัดการแบบแผน URL ที่กำหนดเอง คุณสามารถแยก URL ไฟล์ออกจากไฟล์อื่น ๆ โดยใช้รหัสดังนี้:
if ([url isFileURL])
{
// Handle file being passed in
}
else
{
// Handle custom URL scheme
}
-application:didFinishLaunchingWithOptions:
ในแอพผู้รับมอบสิทธิ์จะมีการเรียกเฉพาะเมื่อแอปของคุณไม่ได้แบ็คกราวน์เมื่อเปิดเพื่อจัดการไฟล์