كيف يكتشف/يستدل Discourse على لوحات المفاتيح الافتراضية؟

لدي مشروع غير متعلق بـ Discourse أود حقًا أن أتمكن من اكتشاف ما إذا كانت لوحة المفاتيح الافتراضية للمتصفح المحمول نشطة أم لا. لقد أدركت للتو، بعد أيام من التفكير والبحث عن حلول، أن منتدى Discourse الذي أزوره كل يوم لديه واجهة سلسة حقًا للوحات مفاتيح الأجهزة المحمولة الافتراضية. من الرائع مدى موثوقيته في اكتشاف لوحة المفاتيح وتغيير مربع الرد لملء المساحة المتبقية، فقط للعودة إلى الوضع الطبيعي إذا أغلقت لوحة المفاتيح.

لم أجد أي حلول سهلة أخرى لاكتشاف لوحة المفاتيح الافتراضية (معظم Stack Overflow يقول فقط لا تحاول)، ولكن أيًا كان ما يفعله Discourse يبدو أنه يعمل بشكل جيد. ومع ذلك، فإن قاعدة الكود كبيرة ومعقدة، ولا أعرف أين أبحث فيها عن الكود ذي الصلة. لذلك كنت آمل أن يتمكن شخص على دراية بواجهة Discourse للجوال إما من توجيهي إلى الكود، أو يمكنه تقديم شرح للاستدلالات التي يستخدمها Discourse؟

إعجابَين (2)

نحن نستخدم واجهة برمجة تطبيقات Visual Viewport API: Visual Viewport API - Web APIs | MDN.

يمكنك البحث في ملفات JS في كود المستودع الخاص بنا عن visualViewport. هناك بعض السلوكيات الغريبة في نظام iOS بسبب موضع المُنشئ، لذا نستخدم بعض التجاوزات الأكثر تعقيدًا هناك، والملف ذو الصلة هو app/assets/javascripts/discourse/app/lib/safari-hacks.js.

5 إعجابات

شكرا لك على تلك النصائح!

إعجابَين (2)