الملف Config.xml كوردوفا في كوردوفا

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث

يتضمن الملف Config.xml الإعدادات العامة التي تتحكم في العديد من سلوكيات تطبيقات كوردوفا. هذا الملف مستقل عن المنصات، وهو مصاغ وفق مواصفات W3C في تطبيقات الويب المحزومة (الودجات)، وقد تم توسيعها لتحديد ميزات الواجهة البرمجية (API) لكوردوفا، والإضافات والإعدادات الخاصة بالمنصات.

بخصوص المشاريع التي تم إنشاؤها باستخدام واجهة سطر الأوامر الخاصة بكوردوفا، فيمكن العثور على هذا الملف في المجلد الجذري (top-level directory) التالي:

app/config.xml‎

لاحظ أنه قبل الإصدار ‎3.3.1-0.2.0‎، كان هذا الملف موجودًا في الموضع app/www/config.xml، وهو ما لا يزال مدعومًا لحد الآن.

عند استخدام واجهة سطر الأوامر لإنشاء مشروع، تُنسخ إصدارات هذا الملف كما هي إلى المجلدات الفرعية في platforms/‎. مثل:

app/platforms/ios/AppName/config.xml
app/platforms/android/res/xml/config.xml‎

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

widget

تمثل widget العنصر الجذري في الملف config.xml.

Attributes(type)‎

فقط لمنصات: الوصف id (سلسلة نصية) مطلوب يحدد معرف النطاق العكسي (reverse-domain identifier) للتطبيق. (سلسلة نصية) version مطلوب رقم الإصدار الكامل معبر عنه بالصيغة الإصدار_الرئيسي/الإصدار_الفرعي/الرقعة (major/minor/patch). android-versionCode (سلسلة نصية)‎ إصدار بديلة لنظام أندرويد. يضبط قيمة version code للتطبيق. راجع صفحة [../guide/platforms/android/index.html#setting-the-version-code the Android guide] للحصول على معلومات حول كيفية تعديل هذه الخاصية. ios-CFBundleVersion (سلسلة نصية)‎ إصدار بديل لنظام iOS. لمزيد من التفاصيل، انظر iOS versioning. OSX-CFBundleVersion (سلسلة نصية) إصدار بديل لأنظمة التشغيل OSX. لمزيد من التفاصيل، راجع صفحة OS X versioning. windows-packageVersion (سلسلة نصية)‎ إصدار بديل لنظام التشغيل ويندوز. لمزيد من التفاصيل، انظر Windows versioning android-packageName (سلسلة نصية) اسم حزمة بديل لمنصة أندرويد، يعيد تعريف id. ios-CFBundleIdentifier (سلسلة نصية) مُعرّف حزمة (bundle id) بديل لنظام iOS. يتجاوز id. packageName (سلسلة نصية)bundle id القيمة الافتراضية: Cordova.Example اسم الحزمة لويندوز. defaultlocale يحدد اللغة الافتراضية للتطبيق، على هيئة رمز اللغة IANA. android-activityName (سلسلة نصية) يعيّن اسم النشاط الخاص بتطبيقك في الملف AndroidManifest.xml. لاحظ أن هذه الخاصية تُعيّن مرة واحدة فقط بعد إضافة نظام أندرويد للمرة الأولى. XMLNS (سلسلة نصية) مطلوب مجال الاسماء (Namespace) للمستند config.xml. xmlns:cdv (سلسلة نصية) مطلوب بادئة فضاء الاسماء.

أمثلة:

<!-- Android -->
<widget id="io.cordova.hellocordova" version="0.0.1" android-versionCode="13" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
</widget>
<!-- iOS -->
<widget id="io.cordova.hellocordova" version="0.0.1" ios-CFBundleVersion="0.1.3" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
</widget>
<!-- Windows -->
<widget id="io.cordova.hellocordova" version="0.0.1" windows-packageVersion="0.1.3" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
</widget>
<!-- OS X -->
<widget id="io.cordova.hellocordova" version="0.0.1" osx-CFBundleVersion="0.1.3" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
</widget>

name

يحدد الاسم الرسمي للتطبيق، كما يظهر على الشاشة الرئيسية للجهاز وضمن واجهات متجر التطبيقات.

أمثلة:

<widget ...>
  <name>HelloCordova</name>
</widget>

الاسم المختصر

يحدد اسم عرضٍ اختياري للتطبيق. في بعض الأحيان، يكون اسم التطبيق المعروض على الشاشة الرئيسية للجهاز مختلفًا عنه على واجهات المعلومات وواجهات متجر التطبيقات بسبب محدودية المساحة.

أمثلة:

<widget ...>
  <name short="HiCdv">HelloCordova</name>
</widget>

description

يحدد البيانات الوصفية (metadata) التي قد تظهر داخل قوائم متجر التطبيقات.

أمثلة:

<widget ...>
  <description>A sample Apache Cordova application</description>
</widget>

author

يحدد معلومات الاتصال التي قد تظهر داخل قوائم متجر التطبيقات. الخاصيات(النوع)

فقط للمنصة: الوصف email (سلسلة نصية) مطلوب البريد الإلكتروني للمؤلف. href (سلسلة نصية) مطلوب موقع المؤلف.

أمثلة:

<widget ...>
  <author email="dev@cordova.apache.org" href="http://cordova.io"></author>
</widget>

content

يحدد صفحة البدء الخاصة بالتطبيق في المجلد الجذري للأصول (web assets directory). القيمة الافتراضية هي index.html، والتي تظهر عادة في المجلد الجذري للمشروع www. الخاصيات(النوع)

فقط للمنصة: الوصف src (سلسلة نصية) مطلوب يحدد صفحة البدء الخاصة بالتطبيق في المجلد الجذري للأصول (web assets directory). القيمة الافتراضية هي index.html، والتي عادةً ما تكون

يظهر في المجلد الجذري للمشروع www.

أمثلة:

<widget ...>
  <content src="startPage.html"></content>
</widget>

access

تحدد مجموعة النطاقات الخارجية التي يُسمح للتطبيق بالاتصال بها. تسمح القيمة الافتراضية الموضحة أعلاه بوصول التطبيق إلى أي خادم. راجع صفحة المجال [../guide/appdev/whitelist/index.html Whitelist Guide] لمزيد من التفاصيل. الخاصيات (النوع)

فقط للمنصة: الوصف origin (سلسلة نصية) مطلوب يحدد مجموعة النطاقات الخارجية التي يُسمح للتطبيق بالاتصال بها.

تسمح القيمة الافتراضية الموضحة أعلاه بوصول التطبيق إلى أي خادم. راجع النطاق [../guide/appdev/whitelist/index.html Whitelist Guide] لمزيد من التفاصيل.

أمثلة:

<widget ...>
  <access origin="*"></access>
</widget>
<widget ...>
  <access origin="http://google.com"></access>
</widget>

allow-navigation

يتحكم في العناوين التي يمكن للعارض أن يتصفّحها. ينطبق على المستوى الأعلى من المواقع فقط. الخاصيات (النوع)

فقط للمنصة: الوصف href (سلسلة نصية) مطلوب يحدد مجموعة النطاقات الخارجية التي يُسمح للعارض بالانتقال إليها.

انظر Cordoba-plugin-whitelist [../reference/cordova-plugin-whitelist/index.html#navigation-whitelist cordova-plugin-whitelist] لمزيد من التفاصيل.

أمثلة:

<!-- Allow links to example.com -->
<allow-navigation href="http://example.com/*" />
<!-- Wildcards are allowed for the protocol, as a prefix to the host, or as a suffix to the path -->
<allow-navigation href="*://*.example.com/*" />

allow-intent

يتحكم في العناوين التي يُسمح للتطبيق بمطالبة النظام بفتحها. افتراضيًا، لا يُسمح بأي عناوين خارجية. الخاصيات (النوع)

فقط للمنصة: الوصف href (سلسلة نصية) مطلوب تحدد العناوين التي يُسمح للتطبيق بمطالبة النظام بفتحها.

انظر Cordoba-plugin-whitelist [../reference/cordova-plugin-whitelist/index.html#intent-whitelist cordova-plugin-whitelist] لمزيد من التفاصيل.

أمثلة:

<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />

edit-config

راجع الصفحة [../plugin_ref/spec.html#edit-config docs] للحصول على plugin.xml.

config-file

راجع الصفحة [../plugin_ref/spec.html#config-file docs] للحصول على plugin.xml.

engine

يحدد تفاصيل حول المنصة المطلوب استعادتها (restore) أثناء الإعداد. الخاصيات (النوع)

فقط للمنصة: الوصف name (سلسلة نصية) مطلوب اسم المنصة المراد استعادتها spec (سلسلة نصية) مطلوب تفاصيل حول المنصة المراد استعادتها. قد يكون هذا رقم إصدار وفق الصيغة major.minor.patch، أو مجلدًا يحتوي على المنصة، أو عنواناً يشير إلى مستودع git. ستُستخدم هذه المعلومات لأجل لاسترداد شيفرة المنصة لأجل الاسترجاع (restore) من مدير الحُزم NPM، أو من مجلدٍ محلي، أو من مستودع git. انظر صفحة [../reference/cordova-cli/index.html#platform-spec Platform Spec] لمزيد من التفاصيل.

أمثلة:

<engine name="android" spec="https://github.com/apache/cordova-android.git#5.1.1" />
<engine name="ios" spec="^4.0.0" />

plugin

يحدد تفاصيل حول الإضافات المطلوب استعادتها (restore) أثناء الإعداد. يُضاف هذا العنصر تلقائيًا إلى الملف config.xml للمشروع عندما تُضاف إضافة باستخدام الراية --save. انظر [../reference/cordova-cli/index.html#cordova-plugin-command CLI reference] لمزيد من المعلومات حول إضافة الإضافات. الخاصيات(النوع)

فقط للمنصة: الوصف name (سلسلة نصية) مطلوب اسم الإضافة المطلوب استعادتها (restored). spec (سلسلة نصية) مطلوب تفاصيل حول الإضافة المراد استعادتها. قد يكون هذا رقم إصدار وفق الصيغة major.minor.patch، أو مجلدًا يحتوي على الإضافة، أو عنواناً يشير إلى مستودع git. ستُستخدم هذه المعلومات لاسترداد شيفرة الإضافة لأجل عملية الاسترجاع (restore) من مدير الحُزم NPM، أو من مجلدٍ محلي، أو من مستودع git. انظر صفحة [../reference/cordova-cli/index.html#plugin-spec Plugin Spec] لمزيد من التفاصيل.

أمثلة:

<plugin name="cordova-plugin-device" spec="^1.1.0" />
<plugin name="cordova-plugin-device" spec="https://github.com/apache/cordova-plugin-device.git#1.0.0" />

variable

يخزّن قيمة أحد متغيرات واجهة سطر الأوامر لكي يُستخدم عند استرجاع إضافة أثناء الإعداد. هذا العنصر يُضاف إلى الملف config.xml عندما تُضاف إحدى الإضافات التي تستخدم متغيرات واجهة سطر الأوامر باستخدام الراية --save. راجع صفحة [../reference/cordova-cli/index.html#cordova-plugin-command CLI reference] لمزيد من المعلومات حول إضافة الإضافات.

لاحظ أن هذه القيمة لا تُستخد إلا عند استرجاع الإضافة لأجل المشروع أثناء الإعداد، ولن يؤدي تغييرها إلى تغيير القيمة التي تستخدمها الإضافة في المشروع الحالي. لكي تسري التغييرات على هذه القيمة فعليًا، أزل الإضافة من المشروع واسترجعها عن طريق تنفيذ الأمر cordova prepare. انظر صفحة [../plugin_ref/spec.html#preference preference element] للملف plugin.xml لمزيد من التفاصيل حول متغيرات واجهة سطر الأوامر. الخاصيات(النوع)

فقط للمنصة: الوصف name (سلسلة نصية) مطلوب اسم متغير واجهة سطر الأوامر. لا يمكن أن يحتوي إلا على الأحرف الكبيرة والأرقام والشرطات السفلية. value (سلسلة نصية) مطلوب قيمة متغير واجهة سطر الأوامر المراد استخدامه عند استرجاع الإضافة الأم (parent plugin) أثناء الإعداد.

أمثلة:

<plugin name="cordova-plugin-device" spec="^1.1.0">
   <variable name="MY_VARIABLE" value="my_variable_value" />
</plugin>

preference

يعيّن الخيارات على هيئة زوج من أسماء/قيم الخاصيات (name/value). الاسماء في preference غير حساسة لحالة الأحرف. العديد من التفضيلات مخصوصة بمنصات محددة، وسيتم الإشارة إليها في موضعها. الخاصيات(النوع)

فقط للمنصة: الوصف AllowInlineMediaPlayback (قيمة منطقية) القيمة الافتراضية: false اضبطها عند القيمة true للسماح بإظهار وسائط HTML5 في مخطط الشاشة (inline)، باستخدام عناصر التحكم التي يوفرها المتصفح بدلاً من عناصر التحكم الأصلية. لكي يعمل هذا، أضف الخاصية playsinline إلى أيٍّ من العناصر <video>. ملاحظة: قبل الإصدار iOS 10، كانت العناصر <video> تحتاج إلى استخدام اسم الخاصية webkit-playsinline بدلاً من ذلك. AndroidLaunchMode (سلسلة نصية) القيمة الافتراضية: singleTop القيم المسموح بها: standard و singleTop و singleTask و singleInstance تعيّن قيمة الخاصية android:launchMode الخاصة بالنشاط. سيؤدي ذلك إلى تغيير ما يحدث عند إطلاق التطبيق من أيقونة التطبيق أو المقصد (intent) أثناء تشغيله. android-maxSdkVersion (عدد صحيح) القيمة الافتراضية: غير محددة يضبط قيمة الخاصية maxSdkVersion في الوسم <uses-sdk> في ملف المشروع AndroidManifest.xml (انظر here). android-minSdkVersion(عدد صحيح) القيمة الافتراضية: يعتمد على إصدار منصة كوردوفا أندرويد تضبط قيمة الخاصية minSdkVersion في الوسم <uses-sdk> في ملف المشروع AndroidManifest.xml (انظر here). android-targetSdkVersion(عدد صحيح) القيمة الافتراضية: يعتمد على إصدار كوردوفا-أندرويد يضبط قيمة الخاصية targetSdkVersion في الوسم <uses-sdk> في ملف المشروع AndroidManifest.xml (انظر here). AppendUserAgent (سلسلة نصية) في حال تعيينها، ستُضاف القيمة بنهاية وكيل المستخدم UserAgent القديم الخاص بالعارض. عند استخدامها مع OverrideUserAgent، سيتم تجاهل هذه القيمة. BackgroundColor (سلسلة نصية) تعيّن هذه الخاصية لون خلفية التطبيق. تدعم القيم اللونية ذات الأربع بايتات (four-byte hex)، إذ يمثل البايت الأول قناة الشفافية ألفا (alpha channel)، وقيم المُركّبات اللونية الثلاثة RGB في البايتات الثلاث التالية. في منصة ويندوز، يتم تجاهل قناة ألفا. Note: ستُعيّن القيمة transparent تجانب خلفية (tile background) التطبيق إلى لون التشكيل في ويندوز. BackupWebStorage (سلسلة نصية) القيمة الافتراضية: cloud القيم المسموح بها: none و local و cloud

اضبط قيمة هذه الخاصية عند "cloud" للسماح تخزين النسخ الاحتياطية للبيانات عبر iCloud. أو local للسماح بالنسخ الاحتياطية المحلية حصرًا من خلال مزامنة iTunes. أو اعطها القيم none لمنع النسخ الاحتياطي لبيانات الويب. 

CordovaWebViewEngine (سلسلة نصية) القيمة الافتراضية: CDVUIWebViewEngine تُعيّن هذه الخاصية قيمة إضافة المحرك WebView ليتم استخدامها لعرض مضيف التطبيق. يجب أن تتوافق الإضافة مع البروتوكول CDVWebViewEngineProtocol. يجب أن تتطابق "القيمة" هنا مع اسم "الميزة" الخاص بإضافة المحرك WebView المثبتة. عادةً ما يتم تعيين هذا التفضيل بواسطة إضافة المحرك WebView المثبتة تلقائيًا. CordovaDefaultWebViewEngine (سلسلة نصية) القيمة الافتراضية: CDVUIWebViewEngine مثل الإعداد السابق، CordovaWebViewEngine، يتيح لك هذا الإعداد تجاوز المعرض WebView الاحتياطي الافتراضي واستبدالها بإضافة أخرى. يستخدم العارض WebView الافتراضي إضافة خاصة، CDVUIWebViewEngine. يمكنك تجاوز هذا إذا كنت بحاجة إلى استخدام إضافة عامة بدلاً من ذلك. يمكن استخدام هذا الإعداد إن كنت بحاجة إلى استخدام معرض آخر غير CDVUIWebViewEngine الافتراضي لعرض التطبيق المضيف. إذا تم تعيين CordovaDefaultWebViewEngine و CordovaWebViewEngine، فسيتم اختيار CordovaWebViewEngine لإعادة التطبيق المضيف للأجهزة التي تعمل على نظام iOS9، أوالإصدارات الأحدث، في حين أنّ CordovaDefaultWebViewEngine هو المعرض الاحتياطي لمنصة iOS8. يجب أن تتوافق الإضافة مع البروتوكول CDVWebViewEngineProtocol. يجب أن تتطابق "القيمة" هنا مع اسم "الميزة" الخاص بالإضافة المحرك WebView المثبتة. DefaultVolumeStream (سلسلة نصية) القيمة الافتراضية: default تمت إضافة هذا الإعداد منذ منصة كوردوفا-أندرويد 3.7.0، هذا التفضيل يحدد شدة الصوت (volume) الذي ترتبط به أزرار مستوى الصوت في الأجهزة. بشكل افتراضي، ستكون "call" للهواتف و "media" للأجهزة اللوحية. اضبط هذا الخيار عند القيمة "media" إن أردت أن تُغير أزرار الصوت الخاصة بالتطبيق التطبيق مستوى صوت الوسائط دائمًا. لاحظ أنه عند استخدام إضافة الوسائط في (media plugin) كوردوفا، ستتغير أزرار الصوت ديناميكيًا للتحكم في مستوى صوت الوسائط عند تنشيط أيٍّ من الوسائط. DisallowOverscroll (قيمة منطقية) القيمة الافتراضية: false اضبط قيمة هذا الإعداد عند true إن لم ترد أن تعرض الواجهة أي تعليقات عندما يُمرّر (scroll) المستخدمون بعد بداية المحتوى أو نهايته. على منصة iOS، يؤدي التمرير الزائد (overscroll) إلى ارتداد المحتوى إلى موضعه الأصلي. أما على أندرويد، فإنها تنتج تأثيرًا براقًا على طول الحافة العلوية أو السفلية من المحتوى. EnableViewportScale (قيمة منطقية) القيمة الافتراضية: false

اضبط قيمة هذا الإعداد عند true للسماح للوسم الوصفي للمعرض viewport بتعطيل نطاق تغير المقياس (scaling) أو تقييده، والذي يتم تمكينه افتراضيًا. ضع عارضًا مثل ما يلي في HTML لتعطيل تغيير المقياس، وملاءمة المحتوى بمرونة داخل العارض:

<meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no' /> EnableWebGL (قيمة منطقية) القيمة الافتراضية: false (OS X 4.0.0+) اضبط هذا الإعداد عند القيمة true لتمكين WebGL على معرض الويب (web view). ErrorUrl (عنوان URL) القيمة الافتراضية: null في حال تعيين هذا الإعداد، فسيتم عرض الصفحة المشار إليها عند حدوث خطأ في التطبيق بدلاً من عرضها في مربع حوار بعنوان "Application Error". ErrorUrl (سلسلة نصية) في حال تعيين هذا الإعداد، فسيتم عرض الصفحة المحلية المشار إليها عند حدوث خطأ في التطبيق. ForegroundText (سلسلة نصية) القيمة الافتراضية: "light"

يعمل فقط على مشاريع ويندوز 8.1. القيم المسموح بها: "light" و "dark". اضبط هذا الإعداد عند القيمة "dark" إن كنت تستخدم لون الخلفية BackgroundColor="white" أو لونًا فاتحًا آخر لتجنب أخطاء الإرسال في متجر ويندوز (Windows Store). 

FullScreen (قيمة منطقية) القيمة الافتراضية: false يسمح لك بإخفاء شريط الحالة (status bar) في الجزء العلوي من الشاشة. Note: هناك طريقة تحقق هذا على جميع المنصات، وهي استخدام [../reference/cordova-plugin-statusbar/ StatusBar plugin]. GapBetweenPages (عدد عشري float) القيمة الافتراضية: 0 حجم الفجوة، بالنقاط، بين الصفحات. HideMousePointer (عدد صحيح) القيمة الافتراضية: ‎-1‎ (OS X 4.0.0+) يعيّن المهلة قبل إخفاء مؤشر الفأرة. اضبط هذا الإعداد عند القيمة 0 إن أردت أن يكون الإخفاء فوريًا، أو ‎-1 إن أردت إلغاءه. InAppBrowserStorageEnabled (قيمة منطقية) القيمة الافتراضية: true يتحكم في ما إن كانت الصفحات المفتوحة ضمن InAppBrowser يمكنها الوصول إلى نفس المخزن المحلي (localStorage) ومخزن WebSQL كصفحات تُفتح باستخدام المتصفح الافتراضي. KeepRunning (قيمة منطقية) القيمة الافتراضية: true يحدد ما إن كان التطبيق سيبقى قيد التشغيل في الخلفية حتى بعد إطلاق حدث [../../../cordova/events/events.pause.html pause]. لا يؤدي تعيين هذا الإعداد عند القيمة false إلى إنهاء التطبيق بعد حدث [../../../cordova/events/events.pause.html pause]، ولكن ببساطة يوقف تنفيذ الشيفرة البرمجية داخل عارض كوردوفا أثناء وجود التطبيق في الخلفية. KeyboardDisplayRequiresUserAction (قيمة منطقية) القيمة الافتراضية: true اضبط هذا الإعداد عند القيمة false لإظهار لوحة المفاتيح عند استدعاء focus()‎ على مدخلات النموذج (form inputs). LoadUrlTimeoutValue (عدد الميليثواني) القيمة الافتراضية: 20000، 20 ثانية عند تحميل صفحة، يحدد هذا الإعداد عدد الثواني التي يجب انتظارها قبل رمي خطأ انتهاء المهلة (timeout error). LoadingDialog (سلسلة نصية) القيمة الافتراضية: null في حال تعيين هذا الإعداد، يعرض مربع حوار مع العنوان والرسالة المحددين، ولائحة منسدلة (spinner)، عند تحميل الصفحة الأولى من التطبيق. يفصل العنوان والرسالة بفاصلة في السلسلة النصية المعطاة، وستُزال تلك الفاصلة قبل عرض مربع الحوار. LogLevel (سلسلة نصية) القيمة الافتراضية: ERROR القيم المسموح بها: ERROR و WARN و INFO و DEBUG و VERBOSE يعيّن هذا الإعداد الحد الأدنى لمستوى السجل (log level) حيثُ ستُصفّى رسائل السجل من التطبيق. MediaPlaybackAllowsAirPlay (قيمة منطقية) القيمة الافتراضية: true اضبط هذا الإعداد عند القيمة false لمنع استخدام Air Play في هذا العرض (view). متاح في المعرضين الافتراضيين UIWebView وWKWebView. MediaPlaybackRequiresUserAction (قيمة منطقية) القيمة الافتراضية: false اضبط هذا الإعداد عند القيمة true لمنع مقاطع الفيديو أو صوتيات HTML5 من التشغيل تلقائيًا باستخدام الخاصية autoplay أو عبر جافااسكريبت. Min / Max Version (تعبير منطقي Regex) القيم المسموح بها: /(Microsoft.+? | Windows.+?)-(MinVersion | MaxVersionTested)/i يحدد هذا الإعداد بيئة العمل (ecosystems) والإصدارات Min / max المتوافقة مع التطبيق. هناك ثلاثة أجزاء لكل قيمة: SDK و version restriction و version value. تُحدد هذه التفضيلات من خلال البدء بالسلسلة النصية Windows أو Microsoft والختم بالسلسلة النصية -MinVersion أو -MaxVersionTested:

  • يحدد SDK المنصة التي تريد استهدافها. القيمة الافتراضية: هي Windows.Universal. القيم الصالحة لهذ الجزء مُعرّفة في المخطط AppxManifest، في عناصر Package/Depednencies/TargetPlatform.
  • يحدد version restriction قواعد توافق التطبيقات. على سبيل المثال، إذا تم تعيين -MinVersion إلى 10.1.0.0، فلن تتمكن أنظمة التشغيل التي لا تدعم على الأقل الإصدار 10.1.0.0 من حزمة الأدوات SDK من تحميل هذه الحزمة. وبالمثل، يمكنك أيضًا استخدام -MaxVersionTested الذي يحدد أعلى إصدار مُختبر من SDK. في حال إطلاق إصدار جديد من الحزمة SDK الموافقة، فسيتم تشغيلها في وضع التوافق (compatibility mode) مع الإصدار المحدد.
  • version value هو سلسلة من 4 أعداد صحيحة على هيئة major.minor.build.qfe. إذا لم يتم تحديد أي تفضيلات لهذه الأنواع في الملف config.xml، فسيتم اختيارا Windows.Universal version 10.0.0.0 بشكل افتراضي.

Note: يتم تعيين هذه التفضيلات فقط في ملفات ييانات التطبيق (appxmanifest) للمنصة المُستهدفة في ملفات جافااسكريبت الخاصة بالمشروع. Orientation (سلسلة نصية) القيمة الافتراضية: default القيم المسموح بها: default و landscape و portrait يتيح لك هذا الإعداد تجميد اتجاه العرض، ومنع الواجهة من الدوران استجابة للتغيرات في الاتجاه. NOTE: القيمة الافتراضية default تعني أن كوردوفا ستقوم بإزالة المُدخلات الخاصب بتفضيلات الاتجاه من ملف البيان/الإعدادات الخاص بالمنصة، ما يسمح للمنصة بالرجوع إلى سلوكها الافتراضي. بالنسبة للمنصة iOS، لتحديد كل من الوضع الرأسي (portrait) والأفقي (landscape)، يمكنك استخدام القيمة المخصوصة بالمنصة "all". OSXLocalStoragePath (سلسلة نصية) القيمة الافتراضية: ‎~/Library/Application Support/ {bundle.id}‎ يعيّن (OS X 4.0.0+) مجلد مسار التخزين المحلي. OverrideUserAgent (سلسلة نصية) في حال تعيين هذا الإعداد، فستحل القيمة الجديدة محل وكيل المستخدم UserAgent القديم في العارض. من المفيد تحديد الطلبية من التطبيق أو المتصفح عند طلب الصفحات البعيدة. استخدم هذا الإعداد بحذر، فقد يتسبب في مشاكل قابل توافقية مع الخوادم. في معظم الحالات، استخدم AppendUserAgent بدلاً من ذلك. PageLength (عدد عشري) القيمة الافتراضية: 0 يحدد حجم كل صفحة، بالنقاط، في الاتجاه الذي تسري فيه الصفحات. عندما تكون الخاصية PaginationMode من اليمين إلى اليسار أو من اليسار إلى اليمين، فإن هذه الخاصية تمثل عرض كل صفحة. وعندما تكون PaginationMode مساوية لـ topToBottom أو bottomToTop، فإن هذه الخاصية تمثل ارتفاع كل صفحة. القيمة الافتراضية هي 0، مما يعني أن الخطاطة (layout) تستخدم حجم إطار العارض لتحديد أبعاد الصفحة. PaginationBreakingMode (سلسلة نصية) القيمة الافتراضية: page القيم المسموح بها: page و column القيم الصالحة هي page و column.الطريقة التي يحدث بها فصل الأعمدة أو الصفحات . تحدد هذه الخاصية ما إن كانت خصائص CSS المتعلقة بفصل الأعمدة (column-breaking) والصفحات (page-breaking) ستُحترم أو تُهمل. عند تعيين هذه الخاصية عند القيمة column، سيحترم المحتوى خصائص CSS المتعلقة بفصل الأعمدة بدلاً من فاصل الصفحات (page-breaking). PaginationMode (سلسلة نصية) القيمة الافتراضية: unpaginated القيم المسموح بها: unpaginated و leftToRight و topToBottom و bottomToTop و rightToLeft تحدد هذه الخاصية ما إن كان المحتوى في العارض سيُقسّم إلى صفحات تملأ شاشة العرض في كل مرة، أو يُعرض كمعرضٍ واحد طويل وقابل للتمرير. في حال تعيين هذا الإعداد عند نموذج مقسم (paginated form)، تقوم هذه الخاصية بتبديل تخطيط صفْحي (paginated layout) على المحتوى، مما يؤدي إلى استخدام المعرض للقيم PageLength و GapBetweenPages لتوصيل المحتوى. SetFullscreen (قيمة منطقية) القيمة الافتراضية: false مشابه للمُعامل Fullscreen في الإعدادات العامة في ملف xml. تم إيقاف هذا العنصر المخصوص بمنصة أندرويد لصالح عنصر ملء الشاشة العام (global Fullscreen elemen)، وسيُزال في إصدار مستقبلي. ShowTitle (قيمة منطقية) القيمة الافتراضية: false إظهار العنوان في أعلى الشاشة. SplashScreenBackgroundColor القيمة الافتراضية: ‎#464646 يضبط لون خلفية شاشة الافتتاح (splashscreen). يقبل هذا الإعداد اسم لون CSS، أو قيمة لونية سداسية عشرية من أربع بايتات (four-byte hex)، حيث يمثل البايت الأول قناة الشفافية ألفا (alpha channel)، فيما تمثل البايتات الأخرى مركبات اللون RGB. يتم تجاهل قناة ألفا على الرغم من أن قيمة transparent ستتسبب في لون خلفية سوداء وبيضاء في حالة القوالب الداكنة/الفاتحة (Dark / Light). Suppresses3DTouchGesture (قيمة منطقية) القيمة الافتراضية: false اضبط هذا الإعداد عند القيمة true لمنع أجهزة iOS التي تعمل بتقنية اللمس ثلاثي الأبعاد (3D Touch) إعادة ودجة زجاجية مكبرة (magnifying glass widget) عندما يقوم المستخدم بتطبيق القوة أثناء الضغط على العارض. اختبر تطبيقك جيدًا لأن هذا الإعداد سيعطل المعالجات onclick، ​​ولكنه يتواءم بشكل رائع مع الحدث ontouchend. إن كان هذا الإعداد يساوي true، فستساوي SuppressesLongPressGesture القيمة true أيضًا. SuppressesIncrementalRendering (قيمة منطقية) القيمة الافتراضية: false اضبط هذا الإعداد عند القيمة true إن أردت الانتظار حتى استلام كامل المحتوى قبل عرضه على الشاشة.

SuppressesLongPressGesture (قيمة منطقية) القيمة الافتراضية: false اضبط هذا الإعداد عند القيمة true لمنع المنصات iOS9 وما فوق من عرض ودجة زجاجية مُكبّرة (magnifying glass widget) عندما يضغط (longpresses) المستخدم على العارض. اختبر تطبيقك جيدًا، لأن هذا السلوك قد يتداخل مع إمكانيات تحديد (selection) النصوص. TopActivityIndicator (سلسلة نصية) القيمة الافتراضية: gray القيم المسموح بها: whiteLarge و white و gray.

يتحكم في مظهر أيقونة الدوران (spinning icon) الصغيرة في شريط الحالة الذي يشير إلى وجود نشاطٍ كبيرٍ من المعالج. uap-target-min-version (سلسلة نصية) تعيّن هذه الخاصية قيمة MinTargetVersion على Windows UAP (منصة ويندوز العامة للتطبيقات). في حال لم تُعيّن هذه الخاصية، فستُضبط عند الإصدار المبدئي 10.0.10240.0 Note: يتم تعيين هذا التفضيل في الملف jsproj وليس في ملف البيان appxmanifest. لذلك لن يتمكن المستخدمون الذين لديهم أنظمة تشغيل ذات إصدارات أقل من هذه القيمة من تشغيل التطبيق. UIWebViewDecelerationSpeed ​​(سلسلة نصية) القيمة الافتراضية: normal القيم المسموح بها: normal و fast تتحكم هذه الخاصية في سرعة تباطؤ (deceleration) حركة التمرير (scrolling). السرعة الافتراضية هي السرعة العادية (normal) لمعظم التطبيقات المحلية، أما في منصة Mobile Safari، فالسرعة الافتراضية هي fast. WindowSize (سلسلة نصية) القيمة الافتراضية: auto (OS X 4.0.0+) تحدد حجم نافذة التطبيق. تقبل الصيغة WxH، والتي تحدد عرضًا وارتفاعًا معينًا، أو القيم الخاصة auto و fullscreen. الخيار الأخير سيفتح نافذة بلا حدود (borderless) تمتد على كامل حيز سطح المكتب. يرجى ملاحظة أن هذا يختلف عن الوضع fullscreen العادي في منصات OS X، والذي لن يمتد على عدة شاشات. Note: الخيار العام fullscreen ليس له أي تأثير على منصات OS X. WindowsDefaultUriPrefix (سلسلة نصية) القيم المسموح بها: ms-appx://، ms-appx-web:// يحدد ما إذا كنت تريد أن يستهدف تطبيقك السياق المحلي أو السياق البعيد كعنوان URI لبدء التشغيل. عند تطوير تطبيقات لمنصة ويندوز 10، فالإعداد الافتراضي سيكون هو السياق البعيد (ms-appx-web://). لكي يكون لديك تطبيق في وضع محلي، وغير متأثر بقيود الوضع البعيد (Remote Mode)، فيجب عليك تعيين هذا الإعداد عند القيمة ms-appx://، وعدم إعطاء أيٍّ من عناصر <access> عناوين URI بعيدة. الوضع المحلي هو الوضع الافتراضي لمنصة ويندوز 8.1 WindowsStoreDisplayName (سلسلة نصية) اسم للناشر مناسب لعرضه على المستخدمين. WindowsStoreIdentityName (سلسلة نصية) اسم التعريف المستخدم في متجر ويندوز. تحدد هذه الخاصية معرفًا فريدًا عامًّا لحزمة معينة. يمثل اسم تعريف الحزمة على هيئة سلسلة من خاصيات الحزمة. انظر identity page on the package manifest schema reference لمزيد من التفاصيل. WindowsStorePublisherName (سلسلة نصية) اسم الناشر. WindowsToastCapable (قيمة منطقية) القيمة الافتراضية: false تشير القيمة true إلى أنه يُسمح للتطبيق بتقديم "الإشعارات السريعة" (toast notifications). deployment-target (سلسلة نصية) يعيّن هذا الإعداد قيمة IPHONEOSDEPLOYMENTTARGET عند البناء، والذي يترجم في النهاية إلى الخاصية MinimumOSVersion في ملف الأرشيف ipa. لمزيد من التفاصيل، يرجى الرجوع إلى وثائق Apple حول إعدادات النشر. target-device (سلسلة نصية) القيمة الافتراضية: universal القيم المسموح بها: handset و tablet و universal ترتبط هذه الخاصية مباشرة بالخاصية TARGETEDDEVICEFAMYY في مشروع xcode. في حال اختيار القيمة Universal (وهو الإعداد الافتراضي)، فستحتاج إلى توفير لقطات الشاشة لكل من iPhone و iPad أو قد يُرفض تطبيقك. windows-phone-target-version (سلسلة نصية) تعيّن هذه الخاصية إصدار Windows Phone الذي ستستهدفه الحزمة (الناتجة من cordova build). إذا لم يتم تحديدها، فسيتم تعيينها عند نفس الإصدار مثل windows-target-version (إذا تم العثور عليه). windows-target-version (سلسلة نصية) تعين هذه الخاصية إصدار ويندوز الذي ستستهدفه الحزمة (الناتجة من cordova build). إذا لم يتم تحديدها، فسيتم تعيينها عند القيمة "8.1".

أمثلة:

<preference name="DisallowOverscroll" value="true"/>
<preference name="Fullscreen" value="true" />
<preference name="BackgroundColor" value="0xff0000ff"/>
<preference name="HideKeyboardFormAccessoryBar" value="true"/>
<preference name="Orientation" value="landscape" />
<!-- iOS only preferences -->
<preference name="EnableViewportScale" value="true"/>
<preference name="MediaPlaybackAllowsAirPlay" value="false"/>
<preference name="MediaPlaybackRequiresUserAction" value="true"/>
<preference name="AllowInlineMediaPlayback" value="true"/>
<preference name="BackupWebStorage" value="local"/>
<preference name="TopActivityIndicator" value="white"/>
<preference name="SuppressesIncrementalRendering" value="true"/>
<preference name="GapBetweenPages" value="0"/>
<preference name="PageLength" value="0"/>
<preference name="PaginationBreakingMode" value="page"/>
<preference name="PaginationMode" value="unpaginated"/>
<preference name="UIWebViewDecelerationSpeed" value="fast" />
<preference name="ErrorUrl" value="myErrorPage.html"/>
<preference name="OverrideUserAgent" value="Mozilla/5.0 My Browser" />
<preference name="AppendUserAgent" value="My Browser" />
<preference name="target-device" value="universal" />
<preference name="deployment-target" value="7.0" />
<preference name="CordovaWebViewEngine" value="CDVUIWebViewEngine" />
<preference name="CordovaDefaultWebViewEngine" value="CDVUIWebViewEngine" />
<preference name="SuppressesLongPressGesture" value="true" />
<preference name="Suppresses3DTouchGesture" value="true" />
<!-- Android only preferences -->
<preference name="KeepRunning" value="false"/>
<preference name="LoadUrlTimeoutValue" value="10000"/>
<preference name="InAppBrowserStorageEnabled" value="true"/>
<preference name="LoadingDialog" value="My Title,My Message"/>
<preference name="ErrorUrl" value="myErrorPage.html"/>
<preference name="ShowTitle" value="true"/>
<preference name="LogLevel" value="VERBOSE"/>
<preference name="AndroidLaunchMode" value="singleTop"/>
<preference name="DefaultVolumeStream" value="call" />
<preference name="OverrideUserAgent" value="Mozilla/5.0 My Browser" />
<preference name="AppendUserAgent" value="My Browser" />
<!-- Windows only preferences -->
<preference name="windows-phone-target-version" value="8.1" />
<preference name="windows-target-version" value="8.1" />
<preference name="Windows.Universal" value="10.0.10240.0" />
<preference name="WindowsDefaultUriPrefix" value="ms-appx://" />
<preference name="Windows.Mobile-MaxVersionTested" value="10.0.10031.0" />
<preference name="Windows.Universal-MinVersion" value="10.0.0.0" />
<preference name="WindowsStoreIdentityName" value="Cordova.Example.ApplicationDataSample" />
<preference name="WindowsStorePublisherName" value="CN=Contoso Corp, O=Contoso Corp, L=Redmond, S=Washington, C=US" />
<preference name="WindowsToastCapable" value="true" />
<preference name="uap-target-min-version" value="10.0.10586.0" />
<!-- OS X only preferences -->
<preference name="HideMousePointer" value="5"/>
<preference name="OSXLocalStoragePath" value="~/.myapp/database"/>
<preference name="WindowSize" value="800x400"/>
<preference name="EnableWebGL" value="true"/>

feature

إن كنت تستخدم واجهة سطر الأوامر لإنشاء التطبيقات، وكنت تستخدم أمر الإضافة (plugin command) لتمكين الواجهات البرمجية (APIs) للجهاز. فهذا لا يعدّل الملف config.xml، لذلك فإن العنصر لا ينطبق على سير عملك. إذا كنت تعمل مباشرةً في بيئة العمل SDK وكنت تستخدم الملف config.xml المخصوص بالمنصة كمصدر، فاستخدم الوسم لتمكين الواجهات البرمجية على مستوى الجهاز والإضافات الخارجية. وغالبًا ما تظهر مع قيم مخصصة في ملفات config.xml الخاصة بالمنصات. راجع مرجع واجهة التطبيقتن API للمزيد من التفاصيل حول كيفية تحديد كل ميزة. راجع صفحة [../guide/hybrid/plugins/index.html Plugin Development Guide] لمزيد من المعلومات حول إضافة الإضافات. ملاحظة: في معظم الأحيان، ليس عليك تعيين هذا الإعداد مباشرة. الخاصيات(النوع)

فقط للمنصة: الوصف name (سلسلة نصية) مطلوب اسم الإضافة المراد تمكينها.

param

تُستخدم لتحديد معاملات إضافة معينة مثل: ما هي الحزمة التي ستُسترد شيفة الإضافة منها، وما إذا كانت شيفرة الإضافة ستُهيؤ أثناء تهيئة العارض. الخاصيات (النوع)

فقط للمنصة: الوصف name (سلسلة نصية) مطلوب القيم المسموح بها: android-package، و ios-package، و osx-package، و onload. تُستخدم "ios-package" و "osx-package" و "android-package" لتحديد اسم الحزمة (كما هو محدد بواسطة الخاصية "value") لاستخدامها في تهيئة شيفرة الإضافة، بينما تُستخدم "onload" لتحديد ما إذا كان يجب أن يتم إنشاء الإضافة المقابلة (كما هو محدد في الخاصية"value") عند تهيئة وحدة التحكم (controller). القيمة (سلسلة نصية أو قيمة منطقية) مطلوب تحدد اسم الحزمة التي ستُستخدم لتهيئة شيفرة الإضافة (عندما تساوي الخاصية 'name' إحدى القيم android-package، أو ios-package أو osx-package)، تحدد اسم الإضافة التي ستُحمّل أثناء تهيئة وحدة التحكم - controller - (عند تعيين "name" عند القيمة "onload").

أمثلة:

<!-- Here is how to specify the Device API for Android projects -->
<feature name="Device">
  <param name="android-package" value="org.apache.cordova.device.Device" />
</feature>
<!-- Here's how the element appears for iOS projects -->
<feature name="Device">
  <param name="ios-package" value="CDVDevice" />
  <param name="onload" value="true" />
</feature>
<!-- Here's how the element appears for OS X projects -->
<feature name="Device">
  <param name="osx-package" value="CDVDevice" />
  <param name="onload" value="true" />
</feature>

platform

عند استخدام واجهة سطر الأوامر لإنشاء التطبيقات، من الضروري في بعض الأحيان تحديد التفضيلات وغيرها من العناصر الخاصة بمنصة معينة. استخدم العنصر platform لتحديد الإعدادات الذي يجب أن تظهر فقط في الملف config.xml الخاص بالمنصة. الخاصيات (النوع)

فقط للمنصة: الوصف name (سلسلة نصية) مطلوب المنصة المراد تحديد تفضيلاتها.

أمثلة:

<platform name="android">
  <preference name="Fullscreen" value="true" />
</platform>

hook

يمثل هذا الإعداد برنامجك النصي (script) المخصص والذي سيٌستدعى من قبل كوردوفا عند وقوع حدثٍ معينٍ (على سبيل المثال، بعد إضافة الإضافة أو عند استدعاء سلسلة التحضير الخاصة بالمنصة). هذا مفيد عندما تحتاج إلى توسيع كوردوفا. راجع صفحة [../guide/appdev/hooks/index.html Hooks Guide] لمزيد من المعلومات. الخاصيات (النوع)

فقط للمنصة: الوصف type (سلسلة نصية) مطلوب يحدد الإجراء الذي يتم خلاله استدعاء البرنامج النصي المخصص. src (سلسلة نصية) مطلوب يحدد مكان البرنامج النصي المراد استدعاؤه عند حدوث إجراء محدد.

أمثلة:

<hook type="after_plugin_install" src="scripts/afterPluginInstall.js" />

resource-file

يثبّت هذا الوسم الملفات المصدرية (resource files) في المنصة، وهو مماثل للوسم الذي يحمل نفس الاسم في الملف plugin.xml. هذه الوسم ليس مدعومًا حاليًا إلا في الإصدار cordova-ios@4.4.0 ومافوق، وفي الإصدار cordova-android@6.2.1 وما فوق. الخاصيات (النوع)

فقط للمنصة: الوصف src (سلسلة نصية) مطلوب موقع الملف بالنسبة إلى config.xml. target (سلسلة نصية) المسار حيث سيُنسخ الملف داخل المجلد خاصتك.

أمثلة:

لأجهزة الأندرويد:

<resource-file src="FooPluginStrings.xml" target="res/values/FooPluginStrings.xml" />

مثال عن الملف config.xml

فيما يلي نموذج للملف config.xml:

<?xml version='1.0' encoding='utf-8'?>
<widget id="io.cordova.hellocordova" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
 <name>HelloCordova</name>
 <description>
     A sample Apache Cordova application that responds to the deviceready event.
 </description>
 <author email="dev@cordova.apache.org" href="http://cordova.io">
     Apache Cordova Team
 </author>
 <content src="index.html" />
 <plugin name="cordova-plugin-whitelist" spec="1" />
 <access origin="*" />
 <allow-intent href="http://*/*" />
 <allow-intent href="https://*/*" />
 <allow-intent href="tel:*" />
 <allow-intent href="sms:*" />
 <allow-intent href="mailto:*" />
 <allow-intent href="geo:*" />
 <platform name="android">
     <allow-intent href="market:*" />
 </platform>
 <platform name="ios">
     <allow-intent href="itms:*" />
     <allow-intent href="itms-apps:*" />
 </platform>
</widget>

مصادر