UIDocumentInteractionController হল একটি iOS কন্ট্রোলার যা নথি প্রিভিউ এবং অ্যাপগুলোর মধ্যে ফাইল শেয়ার করার জন্য ব্যবহৃত হয়। এটি Open In ফিচার বাস্তবায়ন করে, যা ব্যবহারকারীকে যেকোনো সামঞ্জস্যপূর্ণ অ্যাপে ফাইল খুলতে, ইমেলের মাধ্যমে পাঠাতে বা ক্লাউড স্টোরেজে সংরক্ষণ করতে দেয়। Apple Developer Documentation (2025) অনুসারে, কন্ট্রোলারটি PDF, ছবি এবং অফিস নথি দেখার জন্য বিল্ট-ইন Preview-ও সমর্থন করে।
মূল পয়েন্ট
UIDocumentInteractionController হল একটি UIKit ক্লাস যা নথির সাথে কাজ করার জন্য সিস্টেম ইন্টারফেস প্রদান করে। UIDocumentPickerViewController-এর বিপরীতে, যা ফাইল নির্বাচন করে, এই কন্ট্রোলার অ্যাপের বিদ্যমান ফাইলের সাথে কাজ করে এবং ব্যবহারকারীকে ক্রিয়া প্রদান করে: প্রিভিউ, অন্য অ্যাপে খোলা, প্রিন্ট বা পাঠানো।
কন্ট্রোলারটি ViewController নয় — এটি present-এর মাধ্যমে কল করা হয় না। পরিবর্তে, এটি presentOptionsMenu বা presentPreview পদ্ধতির মাধ্যমে সিস্টেম অ্যাকশন মেনু প্রদর্শন করে। মেনুটি প্রদত্ত ফাইল টাইপ হ্যান্ডেল করার জন্য নিবন্ধিত সমস্ত অ্যাপ দেখায়।
UIDocumentInteractionController iOS 2.0 থেকে উপলব্ধ এবং নথির সাথে কাজ করার জন্য প্রাচীনতম APIগুলোর মধ্যে একটি। বয়স সত্ত্বেও, এটি তৃতীয়-পক্ষ লাইব্রেরি ছাড়া Open In ফিচার এবং বিল্ট-ইন প্রিভিউ বাস্তবায়নের জন্য প্রাসঙ্গিক রয়ে গেছে।
Preview হল UIDocumentInteractionController-এর দ্বারা প্রদত্ত একটি বিল্ট-ইন নথি ভিউয়ার। এটি PDF, ছবি, টেক্সট ফাইল এবং অফিস নথি (.doc, .xls, .ppt সহ) সমর্থন করে। Preview স্ট্যান্ডার্ড Quick Look-এর মতো ট্রানজিশন অ্যানিমেশন সহ প্রদর্শিত হয়।
Preview চালু করতে presentPreview পদ্ধতি কল করুন। কন্ট্রোলারের একটি ডেলিগেট প্রয়োজন যা previewControllerForDocumentInteractionController পদ্ধতি বাস্তবায়ন করে, যা নথি প্রদর্শনের জন্য UIViewController ফেরত দেয়। সাধারণত self বা একটি নেভিগেশন কন্ট্রোলার ফেরত দেওয়া হয়।
বিল্ট-ইন Preview অতিরিক্ত ফ্রেমওয়ার্ক বা লাইসেন্সের প্রয়োজন হয় না। এটি যেকোনো ফাইলের সাথে কাজ করে যার URL url প্রপার্টিতে দেওয়া হয়েছে। ব্যবহারকারীরা PDF পৃষ্ঠা স্ক্রোল করতে, ছবি জুম করতে এবং নথি থেকে টেক্সট কপি করতে পারেন।
Open In হল UIDocumentInteractionController-এর মূল বৈশিষ্ট্য। এটি প্রদত্ত ফাইল টাইপ খুলতে পারে এমন অ্যাপের তালিকা প্রদর্শন করে। ব্যবহারকারী লক্ষ্য অ্যাপ নির্বাচন করে, এবং iOS ফাইলটি তার স্যান্ডবক্সে কপি করে, নথির সাথে কাজ করার জন্য অ্যাপ চালু করে।
অ্যাপ তালিকা অন্যান্য অ্যাপের Info.plist-এ নিবন্ধিত Document Type এন্ট্রির উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে তৈরি হয়। যদি কোনো অ্যাপ PDF সমর্থন নিবন্ধন করে, তবে এটি PDF ফাইলের জন্য Open In মেনুতে উপস্থিত হবে। সিস্টেম স্ট্যান্ডার্ড ক্রিয়াও দেখায়: প্রিন্ট, ইমেল দ্বারা পাঠানো, ফাইলে সংরক্ষণ।
Open In ফাইল কপি করে — লক্ষ্য অ্যাপ তার নিজস্ব কপি পায়, তাই পরিবর্তনগুলি মূল অ্যাপে ফেরত সংরক্ষিত হয় না। যদি সংরক্ষণের সাথে সম্পাদনার প্রয়োজন হয়, তবে সিকিউরিটি-স্কোপড URL সহ এক্সপোর্ট মোডে UIDocumentPickerViewController ব্যবহার করুন।
iOS 6 থেকে, UIActivityViewController উপলব্ধ, যা ফাইল শেয়ারিংকেও সমর্থন করে। UIDocumentInteractionController-এর বিপরীতে, UIActivityViewController AirDrop, ইমেল, মেসেজ এবং কাস্টম UIActivity-এর সমর্থন সহ সিস্টেম অ্যাক্টিভিটি শিট দেখায়। সহজ ফাইল শেয়ারিংয়ের জন্য, UIActivityViewController-কে আরও আধুনিক API হিসেবে সুপারিশ করা হয়।
UIDocumentInteractionController-এর মাধ্যমে Open In-এর বাস্তবায়ন মাত্র কয়েক লাইন কোড প্রয়োজন: একটি ইনস্ট্যান্স তৈরি করুন, URL এবং ডেলিগেট সেট করুন, presentOptionsMenu কল করুন। কন্ট্রোলার ফাইল টাইপের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে উপলব্ধ অ্যাপের তালিকা সংগ্রহ করে।
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
)
}
}
Open In মেনুর পরিবর্তে বিল্ট-ইন ভিউয়ার প্রদর্শন করতে presentPreview পদ্ধতি ব্যবহার করুন। কন্ট্রোলার স্ক্রোল করার ক্ষমতা সহ পূর্ণ স্ক্রিনে নথি দেখাবে। ডেলিগেটকে previewControllerForDocumentInteractionController পদ্ধতি বাস্তবায়ন করতে হবে, যা প্রদর্শনের জন্য UIViewController ফেরত দেয়।
UIDocumentInteractionControllerDelegate মেনু এবং Preview-এর প্রদর্শন এবং বাতিলকরণ পরিচালনা করে। ডেলিগেট ঐচ্ছিক পদ্ধতি বাস্তবায়ন করে: উপস্থিতি অ্যানিমেশনের জন্য documentInteractionControllerWillPresentOpenInMenu, মেনু বাতিলের পরে রিসোর্স ক্লিনআপের জন্য documentInteractionControllerDidDismissOpenInMenu।
Preview-এর জন্য একটি গুরুত্বপূর্ণ পদ্ধতি হল previewControllerForDocumentInteractionController, যা নথি প্রদর্শনের জন্য UIViewController ফেরত দিতে হবে। যদি পদ্ধতিটি বাস্তবায়িত না হয় বা nil ফেরত দেয়, তবে Preview চালু হবে না। সাধারণত self বা self-যুক্ত UINavigationController ফেরত দেওয়া হয়।
কন্ট্রোলার documentInteractionController:didEndSendingToApplication পদ্ধতিও সমর্থন করে, যা অন্য অ্যাপে ফাইল সফলভাবে পাঠানোর পরে কল করা হয়। এটি অস্থায়ী ফাইল পরিষ্কার বা অ্যাপে ফিরে আসার পরে ইন্টারফেস আপডেট করার অনুমতি দেয়।
UIDocumentInteractionController এবং UIDocumentPickerViewController ভিন্ন ভিন্ন কাজ সমাধান করে, যদিও উভয়ই নথির সাথে কাজ করে। মূল পার্থক্য: UIDocumentInteractionController একটি বিদ্যমান ফাইল অন্য অ্যাপে স্থানান্তর করে, যেখানে UIDocumentPickerViewController বর্তমান অ্যাপের জন্য বাহ্যিক উৎস থেকে ফাইল নির্বাচন করে।
| প্যারামিটার | UIDocumentInteractionController | UIDocumentPickerViewController |
|---|---|---|
| উদ্দেশ্য | অন্য অ্যাপে ফাইল পাঠানো | অন্য উৎস থেকে ফাইল নির্বাচন |
| উৎস | অ্যাপের নিজস্ব ফাইল | যেকোনো স্টোরেজ (iCloud, ফাইল, তৃতীয়-পক্ষ) |
| মোড | প্রাপকের কাছে ফাইলের কপি | বর্তমান অ্যাপের জন্য ইম্পোর্ট বা এক্সপোর্ট |
| ইন্টারফেস | সিস্টেম মেনু (Action Sheet) | পূর্ণাঙ্গ ফাইল ব্রাউজার |
| ফেরত | কোনো ফলাফল ফেরত দেয় না | ডেলিগেটের মাধ্যমে নির্বাচিত ফাইলের URL |
UIDocumentInteractionController মৌলিক অপারেশনের জন্য ডেলিগেটের প্রয়োজন হয় না — পদ্ধতি বাস্তবায়ন না করলেও মেনু প্রদর্শিত হবে। ডেলিগেট ছাড়া UIDocumentPickerViewController অকেজো — নির্বাচনের ফলাফল প্রক্রিয়াকৃত হবে না। API-এর পছন্দ পরিস্থিতির উপর নির্ভর করে: ফাইল পাঠানো → UIDocumentInteractionController, ফাইল গ্রহণ → UIDocumentPickerViewController।
সচরাচর জিজ্ঞাসিত প্রশ্ন
UIDocumentInteractionController হল একটি UIKit কন্ট্রোলার যা Open In ফিচার এবং বিল্ট-ইন Preview-এর মাধ্যমে নথি প্রিভিউ এবং অ্যাপগুলোর মধ্যে ফাইল স্থানান্তরের জন্য ব্যবহৃত হয়।
একটি ইনস্ট্যান্স তৈরি করুন, লক্ষ্য ফাইলে url প্রপার্টি সেট করুন, ডেলিগেট নির্দিষ্ট করুন এবং presentOptionsMenu কল করুন। সিস্টেম প্রদত্ত ফাইল টাইপ সমর্থন করে এমন অ্যাপের তালিকা দেখাবে।
UIDocumentInteractionController Preview মৌলিক ক্ষমতা সম্পন্ন একটি একক নথির জন্য বিল্ট-ইন ভিউয়ার। Quick Look (QLPreviewController) ব্যাচ ভিউইং, এক্সটেনশন এবং অতিরিক্ত ফাইল ফরম্যাটের সমর্থন সহ একটি পৃথক ফ্রেমওয়ার্ক।
মৌলিক অপারেশনের জন্য ডেলিগেট ঐচ্ছিক — মেনু এটি ছাড়া প্রদর্শিত হবে। ডেলিগেট শুধুমাত্র Preview-এর জন্য (পদ্ধতি previewControllerForDocumentInteractionController) এবং ফাইল পাঠানোর সমাপ্তি ট্র্যাক করার জন্য বাধ্যতামূলক।
UIDocumentInteractionController অ্যাপ থেকে একটি বিদ্যমান ফাইল অন্য অ্যাপে পাঠায়। UIDocumentPickerViewController বাহ্যিক উৎস থেকে বর্তমান অ্যাপে ফাইল নির্বাচন করে। প্রথমটি পাঠানোর জন্য, দ্বিতীয়টি গ্রহণের জন্য।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন