سؤال

لديّ مكون إضافي NPAPI قديم لـ OS X أحاول إعادة استخدامه لاستخدامه مع إصدار Snow Leopard من Safari. مشكلتي هي أنه عندما أقوم بتبديل Safari إلى وضع 64 بت ، فإنه يغير بيئة المكون الإضافي إلى وضع العملية (حيث يتم استضافة الإضافات بواسطة عملية WebKitPluginHost 32 بت). والآن لا تكون لوحات شريط الأدوات الخاصة بي غير مرئية على الشاشة ، على الرغم من أن nspanels التي تستند إليها تعتقد أنها مرئية. تقول الوثائق أن إحضار Windows لا ينصح به ، لكنه لا يقوله محظورًا ؛ هل هناك شيء يمكنني فعله لإحضار نوافعي؟

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

المحلول

الحل الأكثر موثوقية هو السماح ببساطة بتطبيق آخر ، ربما متصل بالمكون الإضافي الخاص بك عبر بعض آلية IPC ، القيام بذلكتفاحة:

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

قد يعمل إحضار Windows من البرنامج المساعد في بعض الحالات ويكسر تمامًا في حالات مختلفة. من خلال التوصية بعدم القيام بذلك ، أصبحت شركة Apple في حالة حرية لكسر سلوك العمل الخاص بك مسبقًا كلما رغب في ذلك.

نصائح أخرى

لسوء الحظ ، ربما لا. إذا كنت تفعل أي شيء غير ممكن باستخدام مكتبات الرسومات العادية (coreanimation ، الكاكاو ، إلخ) ، فمن المحتمل ألا يمكنك القيام بذلك باستخدام سموري 32 بت في سفاري 64 بت.

قد تتمكن من بذل المزيد من الجهد إذا قمت بتجميع المكون الإضافي في وضع 64 بت ، رغم ذلك. لا أعلم :-/

أعلم أنني متأخر قليلاً. لا يسمح Safari بالمكونات الإضافية لعرض nspanel. يجب أن تحاول استخدام Nswindow بدلاً من ذلك. أعلم أن Apple لا توافق.

لعرض القائمة ، يمكنك استخدام "popupContextMenu". يستغرق npnsmenu وهو nsmenu typecasted.

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