العوارض في منصة 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
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"