UIDocumentInteractionController — apa itu, Open In dan dokumen

Penulis: IT Sectr Diterbitkan: 2026-07-11 Waktu membaca: 6 mnt

UIDocumentInteractionController — adalah kontroler iOS untuk pratinjau dokumen dan berbagi file antar aplikasi. Ia mengimplementasikan fungsi Open In, memungkinkan pengguna membuka file di aplikasi yang kompatibel, mengirimkannya melalui email, atau menyimpannya di penyimpanan cloud. Menurut Apple Developer Documentation (2025), kontroler juga mendukung Preview bawaan untuk melihat PDF, gambar, dan dokumen kantor.

Poin utama

  • UIDocumentInteractionController — kontroler iOS untuk melihat dan mengirim dokumen ke aplikasi lain.
  • Preview — penampil bawaan untuk PDF, gambar, dan dokumen kantor tanpa mengganti aplikasi.
  • Open In — fungsi transfer file ke aplikasi lain untuk diedit atau dilihat.
  • UIDocumentInteractionControllerDelegate mengelola animasi, posisi menu, dan penyelesaian operasi.
  • Berbeda dengan UIDocumentPickerViewController, API ini tidak memilih file, tetapi mentransfer file yang sudah ada.

Apa itu UIDocumentInteractionController?

UIDocumentInteractionController — adalah kelas UIKit yang menyediakan antarmuka sistem untuk bekerja dengan dokumen. Berbeda dengan UIDocumentPickerViewController yang memilih file, kontroler ini bekerja dengan file aplikasi yang sudah ada dan menawarkan tindakan kepada pengguna: pratinjau, buka di aplikasi lain, cetak, atau kirim.

Kontroler bukanlah ViewController — tidak dipanggil melalui present. Sebaliknya, ia menampilkan menu tindakan sistem melalui metode presentOptionsMenu atau presentPreview. Menu menunjukkan semua aplikasi yang terdaftar untuk memproses jenis file ini.

UIDocumentInteractionController tersedia sejak iOS 2.0 dan merupakan salah satu API tertua untuk bekerja dengan dokumen. Meskipun sudah tua, ia tetap relevan untuk mengimplementasikan fungsi Open In dan pratinjau bawaan tanpa menggunakan pustaka pihak ketiga.

Mode Preview: pratinjau dokumen bawaan

Preview — adalah penampil dokumen bawaan yang disediakan oleh UIDocumentInteractionController. Ia mendukung PDF, gambar, file teks, dan dokumen kantor (termasuk .doc, .xls, .ppt). Preview ditampilkan dengan animasi transisi yang mirip dengan Quick Look standar.

Untuk memulai Preview, panggil metode presentPreview. Kontroler memerlukan delegat dengan implementasi metode previewControllerForDocumentInteractionController, yang mengembalikan UIViewController untuk menampilkan dokumen. Biasanya self atau kontroler navigasi dikembalikan.

Preview bawaan tidak memerlukan framework atau lisensi tambahan. Ia bekerja dengan file apa pun yang URL-nya telah diberikan ke properti url. Pengguna dapat membalik halaman PDF, memperbesar gambar, dan menyalin teks dari dokumen.

Mode Open In: transfer file antar aplikasi

Open In — fungsi utama UIDocumentInteractionController. Ia menampilkan daftar aplikasi yang dapat membuka jenis file ini. Pengguna memilih aplikasi target, dan iOS menyalin file ke sandbox-nya, meluncurkan aplikasi untuk bekerja dengan dokumen.

Daftar aplikasi dibentuk secara otomatis berdasarkan Document Type yang terdaftar di Info.plist aplikasi lain. Jika sebuah aplikasi mendaftarkan dukungan untuk PDF, ia akan muncul di menu Open In untuk file PDF. Sistem juga menampilkan tindakan standar: cetak, kirim email, simpan di File.

Open In menyalin file — aplikasi target menerima salinannya sendiri, sehingga perubahan tidak disimpan kembali ke aplikasi asli. Jika diperlukan pengeditan dengan penyimpanan, gunakan UIDocumentPickerViewController dalam mode export dengan URL security-scoped.

Konfigurasi UIActivityViewController sebagai alternatif

Sejak iOS 6, UIActivityViewController tersedia, yang juga mendukung pengiriman file. Berbeda dengan UIDocumentInteractionController, UIActivityViewController menampilkan lembar tindakan sistem dengan dukungan untuk AirDrop, email, pesan, dan UIActivity kustom. Untuk pengiriman file sederhana, UIActivityViewController direkomendasikan sebagai API yang lebih modern.

Contoh kode: Open In di Swift

Implementasi Open In melalui UIDocumentInteractionController hanya membutuhkan beberapa baris kode: membuat instance, mengatur URL dan delegat, memanggil presentOptionsMenu. Kontroler secara otomatis mengumpulkan daftar aplikasi yang tersedia berdasarkan jenis file.

swift
class DocumentViewController: UIViewController {

    lazy var interactionController = UIDocumentInteractionController()

    func shareFile(url: URL) {
        interactionController.url = url
        interactionController.uti = url.utiType()
        interactionController.delegate = self
        interactionController.presentOptionsMenu(
            from: self.view.bounds,
            in: self.view,
            animated: true
        )
    }
}

Memulai Preview sebagai pengganti menu

Untuk menampilkan penampil bawaan alih-alih menu Open In, gunakan metode presentPreview. Kontroler akan menampilkan dokumen di layar penuh dengan kemampuan membalik. Delegat harus mengimplementasikan metode previewControllerForDocumentInteractionController yang mengembalikan UIViewController untuk ditampilkan.

UIDocumentInteractionControllerDelegate dan siklus hidup

UIDocumentInteractionControllerDelegate mengelola tampilan dan penyembunyian menu serta Preview. Delegat mengimplementasikan metode opsional: documentInteractionControllerWillPresentOpenInMenu untuk animasi kemunculan, documentInteractionControllerDidDismissOpenInMenu untuk membersihkan sumber daya setelah menu ditutup.

Metode penting untuk Preview — previewControllerForDocumentInteractionController, yang harus mengembalikan UIViewController untuk menampilkan dokumen. Jika metode tidak diimplementasikan atau mengembalikan nil, Preview tidak akan dimulai. Biasanya self atau UINavigationController yang berisi self dikembalikan.

Kontroler juga mendukung metode documentInteractionController:didEndSendingToApplication, yang dipanggil setelah berhasil mentransfer file ke aplikasi lain. Ini memungkinkan pembersihan file sementara atau pembaruan antarmuka setelah kembali ke aplikasi.

Perbedaan dengan UIDocumentPickerViewController

UIDocumentInteractionController dan UIDocumentPickerViewController menyelesaikan tugas yang berbeda, meskipun keduanya bekerja dengan dokumen. Perbedaan utama: UIDocumentInteractionController mentransfer file yang sudah ada ke aplikasi lain, sedangkan UIDocumentPickerViewController memilih file dari sumber eksternal untuk aplikasi saat ini.

ParameterUIDocumentInteractionControllerUIDocumentPickerViewController
TujuanMengirim file ke aplikasi lainMemilih file dari sumber lain
SumberFile milik aplikasi sendiriPenyimpanan apa pun (iCloud, File, pihak ketiga)
ModeSalinan file untuk penerimaImport atau Export untuk aplikasi saat ini
AntarmukaMenu sistem (Action Sheet)Browser file lengkap
HasilTidak mengembalikan hasilURL file yang dipilih melalui delegat

UIDocumentInteractionController tidak memerlukan delegat untuk fungsi dasar — menu akan ditampilkan bahkan tanpa implementasi metode. UIDocumentPickerViewController tanpa delegat tidak berguna — hasil pemilihan tidak akan diproses. Pemilihan API tergantung pada skenario: mengirim file → UIDocumentInteractionController, menerima file → UIDocumentPickerViewController.

Pertanyaan yang sering diajukan

Apa itu UIDocumentInteractionController di iOS?

UIDocumentInteractionController — adalah kontroler UIKit untuk pratinjau dokumen dan transfer file antar aplikasi melalui fungsi Open In dan Preview bawaan.

Bagaimana cara membuka file di aplikasi lain melalui UIDocumentInteractionController?

Buat instance, atur properti url ke file target, tunjuk delegat, dan panggil presentOptionsMenu. Sistem akan menampilkan daftar aplikasi yang mendukung jenis file ini.

Apa perbedaan Preview dengan Quick Look?

UIDocumentInteractionController Preview — penampil bawaan untuk satu dokumen dengan kemampuan dasar. Quick Look (QLPreviewController) — framework terpisah dengan dukungan untuk tampilan batch, ekstensi, dan format file tambahan.

Apakah perlu mengimplementasikan delegat untuk UIDocumentInteractionController?

Delegat opsional untuk fungsi dasar — menu akan ditampilkan tanpa itu. Delegat hanya diperlukan untuk Preview (metode previewControllerForDocumentInteractionController) dan untuk melacak penyelesaian pengiriman file.

Apa perbedaan UIDocumentInteractionController dengan UIDocumentPickerViewController?

UIDocumentInteractionController mengirim file yang sudah ada dari aplikasi ke aplikasi lain. UIDocumentPickerViewController memilih file dari sumber eksternal ke aplikasi saat ini. Yang pertama untuk mengirim, yang kedua untuk menerima.

Ringkasan

  • UIDocumentInteractionController — kontroler iOS untuk melihat dan mengirim file antar aplikasi, tersedia sejak iOS 2.0.
  • Preview menyediakan penampil bawaan untuk PDF, gambar, dan dokumen kantor tanpa pustaka pihak ketiga.
  • Open In menyalin file ke sandbox aplikasi yang dipilih — perubahan tidak kembali ke aplikasi asli.
  • UIDocumentInteractionControllerDelegate mengelola animasi, posisi menu, dan penyelesaian pengiriman melalui metode delegat.
  • presentOptionsMenu menampilkan menu sistem dengan aplikasi yang tersedia untuk jenis file ini.
  • UIActivityViewController adalah alternatif yang lebih modern untuk mengirim file sejak iOS 6.
  • Perbedaan utama dengan UIDocumentPickerViewController: yang pertama mengirim file dari aplikasi, yang kedua memilih file ke aplikasi.

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga