كيفية بناء جسور التواصل عبر الأصل في دائرة الرقابة الداخلية و Andriod

الصورة روبن ميشكوك على Unsplash

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

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

سيكون هناك أيضا الكثير من التورية جسر

لقد حذرت.

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

بشكل عام ، سيتم تشغيل JavaScript التي تكتبها داخل المستعرض. على iOS ، يمكن أن يكون إما UIWebView أو WKWebView. على Android ، عرض ويب.

نظرًا لأن iOS يمكن أن يكون أكثر إثارة للقلق من الأنظمة الأساسية ، فسوف أصف جسر الاتصال هناك أولاً.

جسر لندن يسقط (iOS)

من iOS 8 وما بعده ، توصي Apple باستخدام WKWebView بدلاً من UIWebView ، وبالتالي فإن العنوان التالي سيعالج فقط الجسر على WKWebView.

للحصول على مرجع UIWebView ، يرجى الذهاب هنا.

لإرسال رسائل من WKWebView إلى JavaScript ، يمكنك استخدام الطريقة أدناه:

لتلقي الرسائل من JavaScript داخل WKWebView ، يجب عليك القيام بما يلي:

  1. إنشاء مثيل WKWebViewConfiguration
  2. إنشاء مثيل WKUserContentController
  3. أضف معالج رسالة نصية إلى التكوين الخاص بك (هذا الجزء يسد الفجوة). يسجل هذا الإجراء أيضًا معالج الرسائل في كائن النافذة ضمن المسار التالي: window.webkit.messageHandlers.MSG_HANDLER_NAME
  4. اجعل الفصل يقوم بتطبيق بروتوكول معالج الرسائل عن طريق إضافة في أعلى الملف
  5. تطبيق userContentController: didReceiveScriptMessage (هذه الطريقة تعالج تلقي الرسائل من JavaScript)

بناء الجسور

لنفترض أنه تم إعداد صفحة HTML التالية:

وفي كودنا الأصلي ننفذ الخطوات الموضحة أعلاه:

وفيولا! الآن لديك كامل JavaScript - iOS Communication!

الصورة التي تود ديمر على Unsplash

عبور الجسر (Android)

الأمور أبسط وأكثر ودية هنا. من أجل إعداد جسر الاتصال لدينا ، هناك فقط بضع خطوات:

  1. إنشاء مثيل لكائن WebView
  2. تمكين JavaScript داخل WebView (setJavaScriptEnabled)
  3. قم بتعيين واجهة JavaScript الخاصة بك (والتي ستحتوي على طرق مرئية لجافا سكريبت)
  4. يجب أن تحتوي أي طريقة تريد تعريضها لجافا سكريبت على التعليقات التوضيحيةJavascriptInterface قبل الإعلان عنها

كما كان من قبل ، دعنا نفترض أننا أنشأنا ملف HTML هذا:

وقمنا بإنشاء تطبيق Android البسيط التالي:

وهناك تذهب!

يمكنك الآن اعتبار نفسك نينجا التواصل الأصلي!

فيما يلي الروابط إلى المستودعات:

ملاحظة مهمة بخصوص نظام التشغيل iOS

عندما تصل إلى النقطة التي تريد تدمير WKWebView الخاص بك ، فمن الضروري أن تقوم بإزالة معالج رسائل البرنامج النصي الخاص بك. إذا لم تقم بذلك ، فسيظل معالج رسالة النص البرمجي يحتفظ بمرجع إلى WKWebView وسوف تترتب على تسرب الذاكرة عند إنشاء WKWebViews جديد.

إذا أعجبك هذا المقال ، (التصفيق) ، بحيث يمكن للآخرين الاستمتاع به أيضًا