Advertisements

إنشاء تطبيق متصفح بسيط بلغة سويفت – الجزء الثاني

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

إضافة خاصية البحث وإخفاء لوحة المفاتيح

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

نبدأ بإدراج صندوق النص في التطبيق وهو موجود داخل صندوق الأدوات أو “Object Library”، نقوم بسحبه فوق المتصفح ونضع له الحدود “constraints” ليتوافق مع مختلف أجهزة الآيفون والآيباد:

 

step-1

 

بعد ذلك نربط صندوق النص بملف التحكم بالضغط على cmd + زر الفأرة الأيسر والسحب إلى ملف التحكم وثم إفلات زر الفأرة الأيسر. سنسمي صندوق النص بـ “textField” ليسهل تذكر اسمه.

الخطوة التالية هي إضافة البروتوكول “UITextFieldDelegate” وتفويض صندوق النص بإجراء عملياته عن طريق كتابة “textField.delegate = self” داخل دالة “viewDidLoad”.

بهذا يكون زر العودة أو البحث – بحسب الاسم الذي سنختاره لاحقاً – جاهزاً لإعطاء أمر للمتصفح بتحميل العنوان المدخل في صندوق النص. نقوم الآن بكتابة الدالة الخاصة بذلك ونضمن الكود الذي يمرر عنوان الموقع المدخل في صندوق النص إلى المتصفح كما في الكود التالي:


حتى الآن سيكون شكل التطبيق هو التالي:

 

 

إعدادات لوحة المفاتيح

 

url keyboardسنجري بعض التعديلات على لوحة المفاتيح للحصول على المزايا التالية:

  • تعطيل المدقق الإملائي.
  • تعطيل التصحيح التلقائي.
  • تغيير نوع لوحة المفاتيح إلى الشكل الخاص بإدخال الروابط.
  • المظهر داكن.
  • استبدال كلمة زر الرجوع “return” بـ “search”
  • تعطيل زر البحث حتى تتم الكتابة داخل صندوق النص.

 

 

 

إضافة أزرار الرجوع للخلف، التقدم للأمام وإعادة التحميل

اخترنا وضع الأزرار الأساسية التي تتيح للمستخدم التصفح بسلاسة كالرجوع للصفحات السابقة سواء للأمام أو الخلف وأيضاً زر إعادة التحميل لجعل المتصفح أكثر فعالية. نقوم بذلك بواسطة إضافة “toolbar” أسفل المتصفح، تعديل الحدود من جديد وطبعاً سنحتاج إلى أزرار للقيام بمهام التصفح وإعادة التحميل. لهذا الغرض سننسخ الـ “item” أربع مرات لنحصل على خمسة أزرار، ثلاثة منهم للتصفح وإعادة التحميل، والآخران سنستخدمهما لتوفير مسافات متساوية بين الأزرار.

* بالإمكان أيضآ عدم نسخ الأزرار وسحبهم مباشرة من صندوق الأدوات.

بالنسبة لربط الأزرار لإعطاء الأحداث سنقوم بذلك بدون كتابة الأكواد، بل عن طريق مايوفره برنامج الاكس كود من مزايا معدة مسبقاً تسهل ذلك. نقوم بالنقر على المتصفح “webView”  ثم نتجه إلى الشريط الأيمن “Utilities” ونضغط على آخر خيار على اليمين “Connection Inspector” في القسم الأخير “Received Actions” نقوم بإيصال الروابط كما في هذا الفيديو:

 

 

إضافة مؤشر التحميل “UIActivityIndicator”

مؤشر التحميل يشير إلى استمرار تحميل الصفحة، لذلك من المهم وجوده في المتصفح. وحيث أن حركة المؤشر مربوطة بحالة المتصفح من طلب رابط موقع ما، إلى انتهاء تحميل الصفحة أو عدم استجابة خادم الموقع المراد الوصول إليه، لزم وجود بروتوكول إضافي لاستدعاء عمليات من هذا النوع. البروتوكول هو “UIWebViewDelegate” ويتضمن أربع عمليات، سنحتاج إلى ثلاث منها في مثالنا. إضافة إلى ذلك، نحن بحاجة إلى تفويض المتصفح “webView” بنفس طريقة تفويض صندوق النص لإجراء العمليات المطلوبة.

يبقى لدينا أمر آخر وهو مكان وشكل المؤشر، سنجعل المؤشر في منتصف الشاشة باستخدام المحاذاتين العمودية والأفقية، وسنختار الشكل “Large White” واللون الأزرق كما من المهم جداً وضع علامة “✔️” على خيار “Hide When Stopped” لإخفاء المؤشر بعد انتهاء/فشل عملية التحميل وتوقف المؤشر.

 

 

تمكين المواقع الغير مشفرة أو الغير المحمية “http” باستخدام خاصية ATS

آخر نقطة هي تمكين المواقع غير المشفرة! طبعاً هناك عدة طرق ولكن بشكل عام الخيارات المتاحة أمامنا الآن، هي إما أن نستثني مواقع محددة أو نستثني جميع المواقع. في هذا المثال سنستثني جميع المواقع بتحديث ملف “info.plsit” ووضع هذا المفتاح:

 

 


disable ATS

 

لمزيد من المعلومات حول المواقع المشفرة بإمكانكم الاطلاع على مكتبة أبل لتطوير أنظمة iOS.

 

تعديلات سريعة

  • نلاحظ عدم ظهور العنوان في صندوق النص عند تحميل الصفحة الرئيسية، سنقوم بوضع العنوان عن طريق تحديث الكود في دالة “viewDidLoad” بعد انتهاء المتصفح من تحميل الصفحة الرئيسية لإصلاح هذه المسألة:

 

 

  • في كل مرة يدخل المستخدم فيها عنوان الموقع هو بحاجة إلى كتابة http://، سنقوم بتضمينها تلقائياً ليسهل على المستخدم كتابة العنوان بإضافتها كنص أساسي في رابط صندوق النص:

 

 

لنقم بتشغيل التطبيق الآن

 

* ملاحظة: عند التصفح للخلف والأمام لا يتم تحديث عنوان الموقع فهل تستطيع حل هذه النقطة بنفسك؟ بإمكانك البحث في الشبكة العنكبوتية لإيجاد الحل 😉

جميع الأكواد المكتوبة في هذا المثال تجدونها بالأسفل

 

بالإمكان تنزيل مشروع الإكس كود كاملاً من هنا.

شاركونا آراءكم في التعليقات بالأسفل.

عدد المشاهدات: 126
Advertisements

0 ردود على “إنشاء تطبيق متصفح بسيط بلغة سويفت - الجزء الثاني"

اترك رسالة

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

top
جميع الحقوق محفوظة لفريق المطورين العرب © arabdevteam