العوارض في منصة iOS في كوردوفا
يوضح هذا الدليل كيفية تضمين مُكوّن (component) عارض كوردوفا في تطبيقات منصة iOS الكبيرة. للمزيد من التفاصيل حول كيفية جعل تلك المكوّنات تتواصل مع بعضها، راجع دليل تطوير الإضافات.
بدأ دعم العوارض في منصة iOS منذ الإصدار 1.4 كوردوفا، باستخدام مكوِّن Cleaver
الذي بُنِي على قالب Xcode. منصة كوردوفا 2.0 والإصدارات الأحدث لا تدعم إلا التقديم المستند إلى المشروع الفرعي (subproject-based) للمكُوِّن Cleaver
.
تتطلب هذه الإرشادات على الأقل الإصدار الرابع من كوردوفا، والثامن من Xcode، بالإضافة إلى الملف config.xml
من مشروع iOS المُنشا حديثًا. يمكنك استخدام هذا الإجراء في واجهة سطر الأوامر لإنشاء مشروع جديد، ثم الحصول على الملف config.xml
من المجلد الفرعي platforms/ios
للتطبيق.
لاتباع هذه التعليمات، تأكد من أنّ لديك أحدث توزيعة من كوردوفا. نزِّلها من cordova.apache.org، وفُكَّ ضغط حزمة iOS الموجودة فيها.
هناك طريقتان لإضافة كوردوفا إلى مشروعك. الطريقة الأولى هي استخدام الأداة Carthage، أمّا الطريقة الثانية فتعتمد إضافة كوردوفا يدويًا. تذكر أنّ الأداة Carthage ليست مدعومة إلا في الإصدار 4.0.0 من cordova-ios أو ما فوقه.
بعد استخدام أيٍّ من هاتين الطريقتين، يمكنك الانتقال إلى قسم استخدام CDVViewController
.
إضافة Cordova.framework
إلى مشروع Xcode باستخدام الأداة Carthage
- قم بتثبيت Carthage
- في الملف Cartfile، أضف ما يلي (مع استبدال الإصدار المناسب بـ
<versionortag>
):git "git://git.apache.org/cordova-ios.git" "<version_or_tag>" # Apache
- قم بتنفيذ الأمر التالي:
carthage update
- أضف
Carthage/Build/iOS/Cordova.framework
إلى مشروع Xcode.
إضافة Cleaver إلى مشروع Xcode (CordovaLib Sub-Project)
- قم بإنهاء Xcode إذا كان قيد التشغيل.
- افتح طرفيةً، وانتقل إلى المجلد المصدري لكوردوفا iOS.
- انسخ الملف
config.xml
الموضح أعلاه في مجلد المشروع. - افتح Xcode واستخدم الأداة Finder لنسخ الملف config.xml في النافذة Project Navigator.
- اختر Create groups for any added folders واضغط على الزر Finish.
- استخدم Finder لنسخ الملف
CordovaLib/CordovaLib.xcodeproj
إلىProject Navigator
الخاص بإطار العمل Xcode. - حدّد CordovaLib.xcodeproj في النافذة Project Navigator.
- اكتب تركيبة المفتاح Option-Command-1 لإظهار File Inspector.
- حدِّد Relative to Group في File Inspector من القائمة المنسدلة الخاصة بالموقع Location.
- حدّد أيقونة المشروع project icon في Project Navigator، واختر Target، ثم اذهب إلى علامة التبويب Build Settings.
- أضف
-force_load
و -ObjC
للقيمة Other Linker Flags. - انقر على أيقونة المشروع project icon في النافذة Project Navigator، واختر القيمة Target، ثم اذهب إلى علامة التبويب Build Phases.
- قم بتوسيع Link Binaries with Libraries.
- اضغط على الزر +، وأضف الإطارات frameworks التالية. وبشكلٍ اختياريٍ، قم بنقلها إلى المجموعة Frameworks داخل Project Navigator:
AssetsLibrary.framework
CoreLocation.framework
CoreGraphics.framework
MobileCoreServices.framework
- قم بتوسيع Target Dependencies، في المربع العلوي الذي له ذلك الاسم، في حال كان هناك أكثر من مربع واحد.
- اضغك على الزر +، وأضف منتج البناء
CordovaLib
. - قم بتوسيع Link Binaries with Libraries، أو المربع العلوي الذي له هذا الاسم إذا كان هناك أكثر من مربع واحد.
- اضغط على الزر +، وأضف
libCordova.a
. - عيّن Xcode Preferences → Locations → Derived Data → Advanced... إلى القيمة Unique.
- حدد أيقونة المشروع project icon في النافذة Project Navigator، وحدد Target، ثم اذهب إلى علامة التبويب Build Settings.
- ابحث عن Header Search Paths. وأضف إلى ذلك الإعداد القيمَ الثلاثة أدناه، بما في ذلك علامات الاقتباس:
"$(TARGET_BUILD_DIR)/usr/local/lib/include"
"$(OBJROOT)/UninstalledProducts/include"
"$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include"
"$(BUILT_PRODUCTS_DIR)"
بدءًا من الإصدار 2.1.0 من كوردوفا، تمت ترقية CordovaLib
لاستخدام Automatic Reference Counting (ARC). فلم تعد تحتاج إلى الترقية إلى ARC لاستعمال CordovaLib
، ولكن إن أردت ترقية مشروعك لاستخدام ARC، فاستعمل أداة الترحيل (migration wizard) في إطار العمل Xcode من القائمة Edit → Refactor → Convert to Objective-C ARC...، ثم de-select libCordova.a، ثم قم بتشغيل الأداة لاكمال المهمّة.
استخدام CDVViewController
- أضف الترويسة التالية:
#import <Cordova/CDVViewController.h>
- قم بإنشاء نسخة جديدة من
CDVViewController
واحتفظ بها في مكانٍ ما؛ على سبيل المثال، احتفظ بها في خاصية صنفية (class property):
CDVViewController* viewController = [CDVViewController new];
- بشكل اختياري، قم بضبط قيمة الخاصية
wwwFolderName
، ذات القيمة الافتراضيةwww
:
viewController.wwwFolderName = @"myfolder";
- بشكل اختياري، قم بضبط صفحة البداية في الوسم
<content>
داخل الملفconfig.xml
، إما لملفٍ محلي:
<content src="index.html" />
أو لموقع بعيد:
<content src="http://apache.org" />
- بشكل اختياري، اضبط قيمة الخاصية
useSplashScreen
، ذات القيمة الافتراضيةNO
:
viewController.useSplashScreen = YES;
- اضبط قيمة الخاصية view frame. اترك ضبط هذه الخاصية دائمًا إلى النهاية:
viewController.view.frame = CGRectMake(0, 0, 320, 480);
- أضف Cleaver إلى العارض:
[myView addSubview:viewController.view];
إضافة أصول HTML و CSS و JavaScript
- أنشئ مجلدًا جديدًا داخل المشروع مثل:
www
. - ضع أصول HTML و CSS وجافاسكريبت في هذا المجلد.
- استخدم Finder لنسخ المجلد في نافذة Project Navigator في Xcode.
- اختر Create folder references for any added folders.
- قم بتعيين قيم الخاصيتين
wwwFolderName
وstartPage
المناسبتين للمجلد الذي قمت بإنشائه في البداية، أو استخدم الإعدادات الافتراضية (المحددة في القسم السابق) عند إنشاء نسخة منCDVViewController
.
/*
myfolder إن أنشأت ملفا اسمه
الموجود فيه mypage.html وأردت أن يكون الملف
startPage هو صفحة البداية
*/
viewController.wwwFolderName = @"myfolder";
viewController.startPage = @"mypage.html"