كيفية اقتران نوع الملف مع MacOS X التطبيق دون إطلاق لأول مرة ؟

StackOverflow https://stackoverflow.com/questions/435175

سؤال

أود أن أضم تثبيته نسخة من نظام التشغيل Mac OS X التطبيق مع نوع معين من الملفات.التجريب قليلا يدل على أن معلومات عن الفندق.plist الملف يبدو أن تقرأ وتفسر من قبل نظام التشغيل عند بدء تشغيل التطبيق ، وليس عند سحب التطبيق حزمة القرص. أبل الوثائق في وقت التشغيل التكوين لا يقول الكثير عن هذا الموضوع.

هل هناك أي طريقة استخدام بسيط .dmg صورة تركيب متوسطة ، للتأكد من النظام الزميلة خاصة نوع الملف مع المثبتة حديثا التطبيق دون الحاجة إلى إطلاق ذلك أولا ؟

يجب أن أوضح أنني أريد أن يتم تلقائيا أثناء التثبيت (لا أريد بلدي للمستخدمين القيام بذلك بأنفسهم).

هل كانت مفيدة؟

المحلول

عندما يقوم المستخدم تستمر تطبيق في مجلد التطبيقات ، النظام يجب تسجيل ذلك مع إطلاق خدمات تلقائيا.انظر تطبيق تسجيل في إطلاق خدمات الدليل.

نصائح أخرى

يمكنك القيام بذلك عن طريق كتابة التفاح وأنا على الملف الذي تريد ربط التطبيق مع استخدام مربع صغير يسمى "فتح في..." وحدد التطبيق الخاص بك.يمكنك التحقق من المربع الصغير أسفل "تغيير كل شيء..." لجعل التغيير لجميع ملفات مماثلة.

على الرغم من أن توني المعلومات صحيحة -- كما أوضح هنا -- (أن سحب MyApp.app إلى Applications سيتم تسجيل مع إطلاق خدمات تلقائيا باستخدام معلومات من Info.plist ملف xml و إعداد ملف الجمعيات) وهو لا يجيب على سؤال حول ملفات.

إذا كان الناس اتباع هذه الإرشادات سوف يكون التطبيق مفتوحا ، ولكن لا فتح ملف معين.

[...] تأكد من نظام الزميلة التي خاصة نوع الملف مع المثبتة حديثا التطبيق

ملفات مختلفة قليلا على ماك بالمقارنة مع غيرها من المنصات.معظم المنصات ، عندما *.foo مسجلة مع myapp, عندما MyFile.foo هو النقر المزدوج ، فإنه يرسل شيئا على غرار:

/path/to/myapp MyFile.foo

وعلى الرغم من أن أنت حر في استخدام هذه التقنية على سطر الأوامر على ماك مع النجاح ، فإنه ببساطة لن تعمل من خلال مكتشف و أيضا لن تعمل من خلال النقر المزدوج المرتبطة الملف على سطح المكتب.

سألت عنها هنا:

https://stackoverflow.com/a/19702342/3196753

يدعي البعض هو أن هذا النهج هو مفيد على المحافظة الوثيقة-فتح-معالجة ملف في main() لأنه "يفتح فقط مثيل واحد من التطبيق".بغض النظر عن الأسباب الكامنة وراء هذا القرار ، فإنه يزيد من تعقيد الأمور من C++ المنظور.

  • 108 صفحة PDF المتاحة هنا (تحذير هذا هو علامة على أنها "تراث", linkrot قد تحدث).
  • الوثائق ذات الصلة من أبل المطور البوابة المتاحة هنا.
  • Qt نهج موثقة هنا.

من qt.io:

عندما يقوم المستخدم مزدوج على ملف مكتشف, مكتشف يرسل حدث أبل إلى تطبيق المرتبطة الملف ويطلب منه فتح الملف.إذا كان التطبيق ليس قيد التشغيل ، إطلاقه ثم الطلب.وميزة هذا النهج هو أن هناك مثيل واحد فقط من تطبيق قيد التشغيل.

على نظام التشغيل ويندوز, هذا عادة ما يتم إطلاق التطبيق و تمرير اسم الملف كوسيطة سطر الأوامر.النظر في العديد من الملفات النتائج في إطلاق العديد من الحالات من نفس التطبيق.(إن QtSingleApplication مكون المتاحة مثل Qt حل يعالج هذه المسألة.)

كيو تي 3 لا يوفر التجريد في التعامل مع أحداث آبل ، ولكنها واضحة لإضافة دعم لهم في التطبيق الخاص بك باستخدام ماك الكربون API.دعونا نفترض أن لدينا تطبيق يسمى XpmViewer أن يعرض XPM الملفات (وهو X11 شكل صورة).النافذة الرئيسية فئة الإعلان على النحو التالي:[مقتطف الشفرة إزالة]

(BOOL)application:(NSApplication *)theApplication
       openFile:(NSString *)filename

التعامل مع نظام التشغيل Mac OS X فتح ملف الحدث قبل C++ الرئيسية() ينفذ AEInstallEventHandler معالج لا يطلق على بدء التشغيل

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top