سؤال

ما هي أفضل طريقة لكتابة ملحق سفاري؟لقد قمت بكتابة بعض ملحقات XUL لمتصفح Firefox، والآن أرغب في كتابة إصدارات منها لمتصفح Safari.هل هناك طريقة تسمح لك بإضافة أزرار أو نماذج إلى واجهة مستخدم المتصفح، لأن هذا غير ممكن مع مدير الإدخال أو قائمة الخدمة؟

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

المحلول

مع إصدار Safari 5.0، أصدرت Apple إطار عمل ملحقًا جديدًا ليستخدمه المطورون.في الميزات، يبدو مشابهًا لإطار عمل ملحق Firefox مما يسمح بتخصيص الأزرار وأشرطة الأدوات وقوائم السياق والحقن باستخدام javascript وhtml 5

المزيد على هذا الرابط

https://developer.apple.com/documentation/safariextensions

نصائح أخرى

تطوير البرنامج المساعد لسفاري ليس بالأمر التافه.الواجهة مكتوبة بلغة Objective-C، ومعظمها ليس حتى جزءًا من WebKit (لذلك لا يمكنك رؤية المصدر)، ولكن هناك آلية لفحص وتصحيح التسلسل الهرمي للكائنات في تطبيق قيد التشغيل.يتطلب فهم Cocoa وObjective-C، ولكن ليس أقل من ذلك.

فيما يلي نظرة عامة عالية المستوى لدي في إشاراتي المرجعية للعملية http://livingcode.org/2006/tab-dumping-in-safari.يتعلق الأمر بإنشاء مكونات إضافية لـ Safari باستخدام Python مع كود العمل (ربما عفا عليه الزمن).بدلاً من Python، يمكنك استخدام أي شيء يحتوي على روابط Objective-C.

هناك جزءان رئيسيان لذلك:

  • تحتاج إلى إرفاق الكود الخاص بك بمتصفح Safari قيد التشغيل.يتم ذلك عادةً باستخدام SIMBL http://www.culater.net/software/SIMBL/SIMBL.php.

  • بمجرد دخولك، تحتاج إلى معرفة ما يجب تصحيحه.هناك برنامج تعليمي حول عكس تطبيقات الكاكاو http://www.culater.net/wiki/moin.cgi/CocoaReverseEngineering, ، والذي يرتبط بالأداة الأكثر أهمية، وهي class-dump http://www.codethecode.com/projects/class-dump/ (الرابط الموجود على الويكي معطل).يمنحك Class-dump تسلسلًا هرميًا كاملاً لفئات Safari، حيث يمكنك تخمين الأسماء التي تحتاج إلى تصحيحها على وجه التحديد.هذا هو وضع التجربة والخطأ للغاية.

قراءة الروابط أعلاه ستمنحك نطاق المشروع.

لقد تغيرت الأمور مؤخرا.لدى Apple الآن واجهة برمجة تطبيقات للإضافات متاحة كجزء من Safari 5.يمكنك معرفة المزيد على موقع أبل وبواسطة الانضمام إلى برنامج مطور Safari.

يجب أن تكون ملحقات Safari موقعة رقميًا، ولكن يمكنك الحصول على شهادة التوقيع مجانًا من Apple.هذه هي الطريقة المشروعة للحصول على امتدادك في Safari دون اللجوء إلى الاختراقات التي من المحتمل أن تنكسر في كل مرة تقوم فيها Apple بتحديث Safari.

يبدو أن أحدًا لم يذكر حقيقة أن Safari يدعم بالفعل المكونات الإضافية الحقيقية، وهو ما لا يدعمه اختراق مدير الإدخال بالتأكيد.

"موضوعات برمجة المكونات الإضافية لـ WebKit" http://developer.apple.com/documentation/InternetWeb/Conceptual/WebKit_PluginProgTopic/

هذه هي الطريقة التي يتم بها تنفيذ أشياء مثل دعم محتوى PDF وFlash.نلقي نظرة خاطفة داخل الخاص بك /Library/Internet Plug-ins/ الدليل لرؤية الأمثلة.

بالطبع، هناك قيود متأصلة، وقد لا تتمكن من تحقيق ما تأمل فيه فيما يتعلق بتعديل واجهة المستخدم.لا تستطيع المكونات الإضافية لـ Safari القيام بكل الأشياء التي يستطيع مخترقو Input Manager القيام بها، ولكنها ستعمل في WebKit في أي مكان، وفي الإصدارات المستقبلية من نظام التشغيل. ملحوظة: يعمل Safari بنظام 64 بت بشكل افتراضي على Snow Leopard، لذا لا يعمل مديرو الإدخال.أنا مفقود سفاري AdBlock بالفعل...:-( أحب أن أرى إعادة كتابته كمكون إضافي رائع.

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

في الواقع، مع InputManager، فإنه كان يكون ممكنا.SIMBL، الأسلوب الشائع لملحقات Safari، هو مجرد غلاف حول InputManagers - وهو يرمز إلى سمارت أناnput مغاضب بUndle لoader.يمكنك إضافة عناصر إلى شريط القائمة، إلى شريط الأدوات، ومربعات الحوار، في أي مكان، وذلك ببساطة عن طريق توسيع فئات Safari الموجودة.

ومع ذلك، فإن كتابة ملحقات لمتصفح Safari ليست فقط أمرًا غير تافه، كما قال æon، ولكنها أيضًا غير مدعومة تمامًا.هناك بعض الإضافات المشهورة نسبيًا، مثل Inquisitor (التي استحوذت عليها Yahoo! مؤخرًا) وGears من Google، ولكن في معظمها، فهي تختلف تمامًا عن امتدادات Firefox، وهي تقنية مدعومة رسميًا ومستخدمة على نطاق واسع.

أنت أيضًا تريد بالتأكيد أن تأخذ في الاعتبار ما هو خاص قيود InputManagers على Leopard.

تجدر الإشارة أيضًا إلى أن شركة Apple ذكرت أن InputManagers مقيدة بشدة اعتبارًا من Leopard ولن يتم تشغيلها في تطبيقات 64 بت لكل Apple ملاحظات إصدار الفهد.يعد هذا أمرًا مثيرًا للاهتمام بشكل خاص نظرًا لأن معظم التطبيقات ستكون 64 بت في Snow Leopard (بما في ذلك Safari).تحاول شركة Apple بالتأكيد طمس InputManager باعتباره ناقلًا لتجاوز الوظائف وتوسيعها.يحتاج Safari بشدة إلى آلية تمديد.

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

http://safariextensions.tumblr.com/

إذا كنت تريد إلقاء نظرة على ملحق موجود لمعرفة كيفية تنفيذه، فقم بتنزيله أو الحصول عليه من مجلد ملحقات Safari الخاص بك، ثم قم بتغيير .safariextz إلى .xar ثم افتح/استخرج باستخدام Pacifist لعرض الكود وإذا كنت تريد إضافته إلى تطبيق منشئ الامتداد.

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