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

من موسوعة حسوب

يتضمن الملف Config.xml الإعدادات العامة التي تتحكم في العديد من سلوكيات تطبيقات كوردوفا. هذا الملف هو ملف XML ومستقل عن المنصات، وهو مصاغ وفق مواصفات W3C في تطبيقات الويب المحزَّمة (Widgets)، وقد تم توسيعه لتحديد ميزات الواجهة البرمجية (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.

الخاصيات (النوع)

فقط للمنصات

الوصف
id (سلسلة نصية) (مطلوب)

يحدد معرف النطاق العكسي (reverse-domain identifier) للتطبيق.

version (سلسلة نصية) (مطلوب)

رقم الإصدار الكامل معبرًا عنه بالصيغة الإصدار_الرئيسي/الإصدار_الفرعي/الرقعة (major/minor/patch).

android-versionCode (سلسلة نصية)‎

(منصة أندرويد)

إصدار بديل لنظام أندرويد. يضبط قيمة إصدار شيفرة التطبيق. راجع صفحة دليل أندرويد للحصول على معلومات حول كيفية تعديل هذه الخاصية.
ios-CFBundleVersion (سلسلة نصية)‎

(منصة iOS)

إصدار بديل لنظام iOS. لمزيد من التفاصيل، انظر إصدارات iOS .
OSX-CFBundleVersion (سلسلة نصية)

(منصة OS X)

إصدار بديل لأنظمة التشغيل OSX. لمزيد من التفاصيل، راجع صفحة إصدارات OS X.
windows-packageVersion (سلسلة نصية)‎

(منصة ويندوز)

إصدار بديل لنظام التشغيل ويندوز. لمزيد من التفاصيل، راجع صفحة إصدارات ويندوز.
android-packageName (سلسلة نصية)

(منصة أندرويد)

اسم حزمة بديل لمنصة أندرويد؛ يعيد تعريف الخاصية id.
ios-CFBundleIdentifier (سلسلة نصية)

(منصة iOS)

مُعرّف حزمة (bundle id) بديل لنظام iOS. يعيد تعريف الخاصية id.
packageName (سلسلة نصية)

(منصة ويندوز)

القيمة الافتراضية: Cordova.Example

اسم الحزمة لويندوز.

defaultlocale

(منصة ويندوز و iOS)

يحدد اللغة الافتراضية للتطبيق، على هيئة رمز IANA.
android-activityName (سلسلة نصية)

(منصة أندرويد)

يعيّن اسم النشاط الخاص بتطبيقك في الملف AndroidManifest.xml. لاحظ أن هذه الخاصية تُعيّن مرة واحدة فقط بعد إضافة نظام أندرويد للمرة الأولى.
XMLNS (سلسلة نصية) (مطلوب)

مجال الأسماء (Namespace) للمستند config.xml.

xmlns:cdv (سلسلة نصية) (مطلوب)

بادئة مجال الأسماء (Namespace).

إليك الأمثلة التالية:

<!-- أندرويد-->
<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>
<!-- ويندوز-->
<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>

الاسم المختصر (short name)

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

<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

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

الخاصيات (النوع)

فقط للمنصات

الوصف
src (سلسلة نصية) (مطلوب)

تحدد صفحة البدء الخاصة بالتطبيق في المجلد الجذري للأصول (web assets directory).

القيمة الافتراضية هي index.html، والذي عادةً ما يكون في المجلد www الجذري للمشروع.

يشرح المثال التالي ما سبق:

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

access

يحدد هذا الوسم مجموعة النطاقات الخارجية التي يُسمح للتطبيق بالاتصال بها.

الخاصيات (النوع)

فقط للمنصات

الوصف
origin (سلسلة نصية) (مطلوب)

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

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

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

allow-navigation

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

الخاصيات (النوع)

فقط للمنصات

الوصف
href (سلسلة نصية) (مطلوب)

يحدد مجموعة النطاقات الخارجية التي يُسمح للعارض بالانتقال إليها.

انظر صفحة إضافة اللائحة البيضاء لمزيد من التفاصيل.

<!-- example.com السماح بالروابط للنطاق -->
<allow-navigation href="http://example.com/*" />
<!-- علامة النجمة مسموح بها مكان البروتوكول، كبادئة للمُضيف، أو كلاحقة للمسار -->
<allow-navigation href="*://*.example.com/*" />

allow-intent

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

الخاصيات (النوع)

فقط للمنصات

الوصف
href (سلسلة نصية) (مطلوب)

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

انظر صفحة إضافة اللائحة البيضاء لمزيد من التفاصيل.

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

edit-config

راجع توثيق الوسم edit-config الخاص بالملف plugin.xml.

config-file

راجع توثيق الوسم config-file الخاص بالملف plugin.xml.

engine

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

الخاصيات (النوع)

فقط للمنصات

الوصف
name (سلسلة نصية) (مطلوب)

اسم المنصة المراد استرجاعها.

spec(سلسلة نصية) (مطلوب)

تفاصيل حول المنصة المراد استعادتها. قد تكون قيمة هذه الخاصية رقمَ إصدار وفق الصيغة major.minor.patch، أو مجلدًا يحتوي على المنصة، أو عنوانًا يشير إلى مستودع git. ستُستخدم هذه المعلومات لاسترداد شيفرة المنصة لأجل عملية الاسترجاع (restore) من مدير الحُزم NPM، أو من مجلدٍ محلي، أو من مستودع git. انظر قسم مواصفات المنصات لمزيد من التفاصيل.

إليك المثال التالي:

<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. انظر صفحة واجهة سطر الأوامر لمزيد من المعلومات حول إضافة الإضافات.

الخاصيات (النوع)

فقط للمنصات

الوصف
name (سلسلة نصية) (مطلوب)

اسم الإضافة المراد استرجاعها.

spec(سلسلة نصية) (مطلوب)

تفاصيل حول الإضافة المراد استعادتها. قد تكون قيمة هذه الخاصية رقم إصدار وفق الصيغة major.minor.patch، أو مجلدًا يحتوي على الإضافة، أو عنوانًا يشير إلى مستودع git. ستُستخدم هذه المعلومات لاسترداد شيفرة الإضافة لأجل عملية الاسترجاع (restore) من مدير الحُزم NPM، أو من مجلدٍ محلي، أو من مستودع git. انظر صفحة مواصفات الإضافات لمزيد من التفاصيل.

ألق نظرة على المثال التالي:

<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. راجع صفحة واجهة سطر الأوامر لمزيد من المعلومات حول إضافة الإضافات.

لاحظ أن هذه القيمة لا تُستخدم إلا عند استرجاع الإضافة إلى المشروع أثناء الإعداد، ولن يؤدي تغييرها إلى تغيير القيمة التي تستخدمها الإضافة في المشروع الحالي. لكي تسري التغييرات على هذه القيمة فعليًا، أزل الإضافة من المشروع واسترجعها عن طريق تنفيذ الأمر cordova prepare. انظر قسم العنصر preference الخص بالملف 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 (قيمة منطقية)

(ios)

القيمة الافتراضية: 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 (انظر هنا).

android-minSdkVersion (سلسلة نصية)‎

(أندرويد)

القيمة الافتراضية: يعتمد على إصدار منصة كوردوفا-أندرويد.

تضبط قيمة الخاصية minSdkVersion في الوسم <uses-sdk> في ملف المشروع AndroidManifest.xml (انظر هنا).

android-targetSdkVersion(عدد صحيح)

(أندرويد)

القيمة الافتراضية: تعتمد على إصدار كوردوفا-أندرويد

تضبط قيمة الخاصية targetSdkVersion في الوسم <uses-sdk> في ملف المشروع AndroidManifest.xml (انظر هنا).

android-minSdkVersion (سلسلة نصية)‎

(أندرويد)

القيمة الافتراضية: يعتمد على إصدار منصة كوردوفا-أندرويد

تضبط قيمة الخاصية minSdkVersion في الوسم <uses-sdk> في ملف المشروع AndroidManifest.xml (انظر هنا).

AppendUserAgent (سلسلة نصية)

(أندرويد - ios)

في حال تعيينها، ستُضاف قيمتها إلى نهاية وكيل المستخدم UserAgent القديم الخاص بالعارض. عند استخدامها مع OverrideUserAgent، سيتم تجاهل هذه القيمة.
BackgroundColor (سلسلة نصية)

(أندرويد - ويندوز - ios)

تعيّن هذه الخاصية لون خلفية التطبيق. تدعم القيم اللونية الست عشرية ذات الأربع بايتات (four-byte hex)، إذ يمثل البايت الأول قناة الشفافية ألفا (alpha channel)، فيما تمثل البايتات الثلاث التالية قيم المُركّبات اللونية الثلاثة RGB.

في منصة ويندوز، يتم تجاهل قناة الشفافية ألفا.

ملاحظة: ستُضبط القيمة transparent تَجَانُبَ خلفية (tile background) التطبيق عند لون التشكيل (accent color) في ويندوز.

BackupWebStorage (سلسلة نصية)

(ios)

القيمة الافتراضية: cloud

القيم المسموح بها: none و local و cloud

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

CordovaWebViewEngine (سلسلة نصية)

(ios)

القيمة الافتراضية: CDVUIWebViewEngine

تُعيّن هذه الخاصية قيمة إضافة محرك العارض (WebView engine plugin) ليتم استخدامها لعرض مضيف التطبيق. يجب أن تتوافق الإضافة مع البروتوكول CDVWebViewEngineProtocol. كما يجب أن تتطابق "القيمة" (value) هنا مع اسم "الميزة" (feature) الخاص بإضافة محرك العارض المثبتة.

عادةً ما يتم تعيين هذا التفضيل بواسطة إضافة محرك العارض المثبتة تلقائيًا.

CordovaDefaultWebViewEngine (سلسلة نصية)

(ios)

القيمة الافتراضية: CDVUIWebViewEngine

مثل الإعداد السابق، CordovaWebViewEngine، يتيح لك هذا الإعداد تجاوز العارض الاحتياطي (fallback WebView) الافتراضي واستبداله بإضافة أخرى. يستخدم العارض الافتراضي إضافة خاصة، وهي CDVUIWebViewEngine. يمكنك استبدال هذا إذا كنت بحاجة إلى استخدام إضافة عامة بدلًا من ذلك. يمكن استخدام هذا الإعداد إن كنت بحاجة إلى استخدام عارض آخر غير CDVUIWebViewEngine الافتراضي لعرض التطبيق المضيف. إذا تم تعيين CordovaDefaultWebViewEngine و CordovaWebViewEngine، فسيتم اختيار CordovaWebViewEngine لإعادة التطبيق المضيف للأجهزة التي تعمل على نظام iOS9، أو الإصدارات الأحدث؛ أما العارض الاحتياطي لمنصة iOS8، فهو CordovaDefaultWebViewEngine.

يجب أن تتوافق الإضافة مع البروتوكول CDVWebViewEngineProtocol. يجب أن تتطابق "القيمة" (value) هنا مع اسم "الميزة" (feature) الخاص بإضافة محرك العارض (WebView engine plugin) المثبتة.

DefaultVolumeStream (سلسلة نصية)

(أندرويد)

القيمة الافتراضية: default

تمت إضافة هذا الإعداد منذ منصة كوردوفا-أندرويد 3.7.0، هذا التفضيل يحدد الصوت (volume) الذي ترتبط به أزرار مستوى الصوت في الأجهزة. بشكل افتراضي، ستكون قيمة هذه الخاصية "call" للهواتف و "media" للأجهزة اللوحية.

اضبط هذا الخيار عند القيمة "media" إن أردت أن تُغير أزرار الصوت الخاصة بمستوى صوت الوسائط دائمًا. لاحظ أنه عند استخدام إضافة الوسائط (media plugin) في كوردوفا، ستتغير أزرار الصوت ديناميكيًا للتحكم في مستوى صوت الوسائط عند تنشيط أيٍّ من الوسائط.

DisallowOverscroll (قيمة منطقية)

(أندرويد - ios)

القيمة الافتراضية: false

اضبط هذا الإعداد عند القيمة true إن لم ترد أن تعرض الواجهة أي تعليقات عندما يستمر المستخدمون في التمرير (scrolling) بعد تجاوز بداية المحتوى أو نهايته. على منصة iOS، يؤدي التمرير الزائد (overscroll) إلى ارتداد المحتوى إلى موضعه الأصلي. أما على أندرويد، فإنها تنتج تأثيرًا براقًا على طول الحافة العلوية أو السفلية من المحتوى.

EnableViewportScale (قيمة منطقية)

(ios)

القيمة الافتراضية: false

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

<meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no' />‎

EnableWebGL (قيمة منطقية)

(OS X 4.0.0+)

القيمة الافتراضية: false

اضبط هذا الإعداد عند القيمة true لتمكين WebGL على عارض الويب (web view).

ErrorUrl (عنوان URL)

(أندرويد)

القيمة الافتراضية: null

في حال تعيين هذا الإعداد، فسيتم عرض الصفحة المشار إليها عند حدوث خطأ في التطبيق بدلًا من عرضها في مربع حوار بعنوان "Application Error".

ErrorUrl (سلسلة نصية)

(ios)

في حال تعيين هذا الإعداد، فسيتم عرض الصفحة المحلية المشار إليها عند حدوث خطأ في التطبيق.
ForegroundText (سلسلة نصية)

(ويندوز)

القيمة الافتراضية: "light"

يعمل فقط على مشاريع ويندوز 8.1. القيم المسموح بها: "light" و "dark".

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

FullScreen (قيمة منطقية)

(أندرويد)

القيمة الافتراضية: false

يسمح لك بإخفاء شريط الحالة (status bar) في الجزء العلوي من الشاشة.

ملاحظة: هناك طريقة تحقق هذا المسعى على جميع المنصات، وهي استخدام إضافة شريط الحالة.

GapBetweenPages (عدد عشري float)

(ios)

القيمة الافتراضية: 0

حجم الفجوة بين الصفحات بالنقاط.

HideMousePointer (عدد صحيح)

(OS X 4.0.0+)

القيمة الافتراضية: ‎-‎1‎

يعيّن المهلة قبل إخفاء مؤشر الفأرة. اضبط هذا الإعداد عند القيمة 0 إن أردت أن يكون الإخفاء فوريًا، أو ‎-1 إن أردت إلغاءه.

InAppBrowserStorageEnabled(قيمة منطقية)

(أندرويد)

القيمة الافتراضية: true

يتحكم في ما إن كانت الصفحات المفتوحة ضمن InAppBrowser يمكنها الوصول إلى نفس المخزن المحلي (localStorage) ومخزن WebSQL كصفحات تُفتح باستخدام المتصفح الافتراضي.

KeepRunning (قيمة منطقية)

(أندرويد)

القيمة الافتراضية: true

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

KeyboardDisplayRequiresUserAction (قيمة منطقية)

(ios)

القيمة الافتراضية: true

اضبط هذا الإعداد عند القيمة false لإظهار لوحة المفاتيح عند استدعاء الدالة focus()‎ على مدخلات النموذج (form inputs).

LoadUrlTimeoutValue (عدد الميليثواني)

(أندرويد)

القيمة الافتراضية: 20000، أي 20 ثانية

عند تحميل صفحة، يحدد هذا الإعداد عدد الثواني التي يجب انتظارها قبل إطلاق خطأ انتهاء المهلة (timeout error).

LoadingDialog (سلسلة نصية)

(أندرويد)

القيمة الافتراضية: null

في حال تعيين هذا الإعداد، يعرض مربع حوار مع العنوان والرسالة المحددين، وقائمة منسدلة (spinner)، عند تحميل الصفحة الأولى من التطبيق. يفصل العنوان والرسالة بفاصلة في السلسلة النصية المعطاة، وستُزال تلك الفاصلة قبل عرض مربع الحوار.

LogLevel (سلسلة نصية)

(أندرويد)

القيمة الافتراضية: ERROR

القيم المسموح بها: ERROR و WARN و INFO و DEBUG و VERBOSE

يعيّن هذا الإعداد الحد الأدنى لمستوى السجل (log level) حيثُ ستُصفّى رسائل السجل من التطبيق.

MediaPlaybackAllowsAirPlay (قيمة منطقية)

(ios)

القيمة الافتراضية: true

اضبط هذا الإعداد عند القيمة false لمنع استخدام تقنية Air Play في هذا العرض (view). هذا الأمر متاح في العارضين الافتراضيين UIWebView وWKWebView.

MediaPlaybackRequiresUserAction (قيمة منطقية)

(ios)

القيمة الافتراضية: false

اضبط هذا الإعداد عند القيمة true لمنع مقاطع الفيديو أو صوتيات HTML5 من التشغيل تلقائيًا باستخدام الخاصية autoplay أو عبر JavaScript.

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 بشكل افتراضي.

ملاحظة: يتم تعيين هذه التفضيلات فقط في ملفات بيانات التطبيق (appxmanifest) للمنصة المُستهدفة، وليس في ملفات JavaScript الخاصة بالمشروع.

Orientation (سلسلة نصية) القيمة الافتراضية: default

القيم المسموح بها: default و landscape و portrait

يتيح لك هذا الإعداد تجميد اتجاه العرض، ومنع الواجهة من الدوران استجابة للتغيرات في الاتجاه.

ملاحظة: القيمة الافتراضية default تعني أن كوردوفا ستقوم بإزالة المُدخلات الخاصة بتفضيلات الاتجاه من ملف البيان/الإعدادات الخاص بالمنصة، ما يسمح للمنصة بالرجوع إلى سلوكها الافتراضي. بالنسبة للمنصة iOS، لتحديد الوضعين الرأسي (portrait) والأفقي (landscape) معًا، يمكنك استخدام القيمة "all" المخصوصة بالمنصة.

OSXLocalStoragePath (سلسلة نصية)

(OS X 4.0.0+)

القيمة الافتراضية: ‎~/Library/Application Support/{bundle.id}

تعيّن مجلد مسار التخزين المحلي.

OverrideUserAgent (سلسلة نصية)

(أندرويد - ios)

في حال تعيين هذا الإعداد، فستحل القيمة الجديدة محل وكيل المستخدم UserAgent القديم في العارض. من المفيد تحديد الطلبية (request) من التطبيق أو المتصفح عند طلب الصفحات البعيدة. استخدم هذا الإعداد بحذر، فقد يتسبب في مشاكل تتعلق بالتوافقية مع الخوادم.

في معظم الحالات، يُفضل استخدام AppendUserAgent.

PageLength (عدد عشري) القيمة الافتراضية: 0

يحدد حجم كل صفحة، بالنقاط، في الاتجاه الذي تسري فيه الصفحات. عندما تكون الخاصية PaginationMode من اليمين إلى اليسار أو من اليسار إلى اليمين، فإن هذه الخاصية تمثل عرض كل صفحة. وعندما تكون PaginationMode مساوية للقيمة topToBottom أو bottomToTop، فإن هذه الخاصية تمثل ارتفاع كل صفحة. القيمة الافتراضية هي 0، مما يعني أن تخطيط الصفحة (layout) سيستخدم حجم إطار العارض لتحديد أبعاد الصفحة.

PaginationBreakingMode (سلسلة نصية)

(ios)

القيمة الافتراضية: page

القيم المسموح بها: page و column

القيم الصالحة هي: page و column إشارة إلى الطريقة التي يحدث بها فصل الأعمدة أو الصفحات.

تحدد هذه الخاصية ما إن كانت خصائص CSS المتعلقة بفصل الأعمدة (column-breaking) وفصل الصفحات (page-breaking) ستؤخذ بالحسبان أو تُهمل. عند تعيين هذه الخاصية عند القيمة column، سيؤخذ حتوى خصائص CSS المتعلقة بفصل الأعمدة بالحسبان بدلًا من فاصل الصفحات (page-breaking).

PaginationMode (سلسلة نصية)

(ios)

القيمة الافتراضية: unpaginated

القيم المسموح بها: unpaginated و leftToRight و topToBottom و bottomToTop و rightToLeft

تحدد هذه الخاصية ما إن كان المحتوى في العارض سيُقسّم إلى صفحات تملأ شاشة العرض في كل مرة، أو يُعرض كمعرضٍ واحد طويل وقابل للتمرير. في حال تعيين هذا الإعداد عند نموذج مقسم (paginated form)، تبدِّل هذه الخاصية تخطيط الصفحة (paginated layout) على المحتوى، مما يؤدي إلى استخدام العارض للقيم PageLength و GapBetweenPages لتوصيل المحتوى.

SetFullscreen (قيمة منطقية)

(أندرويد)

القيمة الافتراضية: false

مشابه للمُعامل Fullscreen في الإعدادات العامة في ملف xml.

تم إيقاف هذا العنصر المخصوص بمنصة أندرويد لصالح عنصر ملء الشاشة العام (global Fullscreen element)، وسيُزال في إصدار مستقبلي.

ShowTitle (قيمة منطقية)

(أندرويد)

القيمة الافتراضية: false

إظهار العنوان في أعلى الشاشة.

SplashScreenBackgroundColor

(ويندوز)

القيمة الافتراضية: ‎#464646

يضبط لون خلفية شاشة الافتتاح (splashscreen). يقبل هذا الإعداد اسم لون CSS، أو قيمة لونية ست عشرية من أربع بايتات (four-byte hex)، حيث يمثل البايت الأول قناة الشفافية ألفا (alpha channel)، فيما تمثل البايتات الأخرى مركبات اللون RGB.

يتم تجاهل قناة ألفا على الرغم من أن قيمة transparent ستتسبب في لون خلفية سوداء وبيضاء في حالة القوالب الداكنة/الفاتحة (Dark / Light).

Suppresses3DTouchGesture (قيمة منطقية)

(ios)

القيمة الافتراضية: false

اضبط هذا الإعداد عند القيمة true لمنع أجهزة iOS التي تعمل بتقنية اللمس ثلاثي الأبعاد (3D Touch) من عرض أداة ذكية (widget) زجاجية مكبرة (magnifying glass widget) عندما يضغط المستخدم بقوة على العارض.

اختبر تطبيقك جيدًا لأن هذا الإعداد سيعطل مُعالجات الحدث onclick، ​​ولكنه يتواءم بشكل جيد مع الحدث ontouchend. إن كان هذا الإعداد يساوي true، فستساوي SuppressesLongPressGesture القيمة true أيضًا.

SuppressesIncrementalRendering (قيمة منطقية)

(ios)

القيمة الافتراضية: false

اضبط هذا الإعداد عند القيمة true إن أردت الانتظار حتى استلام كامل المحتوى قبل عرضه على الشاشة.

SuppressesLongPressGesture (قيمة منطقية)

(ios)

القيمة الافتراضية: false

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

TopActivityIndicator (سلسلة نصية)

(ios)

القيمة الافتراضية: gray

القيم المسموح بها: whiteLarge و white و gray.

تتحكم هذه الخاصية في مظهر أيقونة الدوران (spinning icon) الصغيرة في شريط الحالة، والذي يشير إلى وجود نشاطٍ كبيرٍ من المعالج.

uap-target-min-version (سلسلة نصية)

(ويندوز)

تعيّن هذه الخاصية قيمة MinTargetVersion على Windows UAP (منصة ويندوز العامة للتطبيقات). في حال لم تُعيّن هذه الخاصية، فستُضبط عند الإصدار المبدئي 10.0.10240.0.

ملاحظة: يتم تعيين هذا التفضيل في ملفات JavaScript الخاصة بالمشروع وليس في ملف البيان (appxmanifest). لذلك لن يتمكن المستخدمون الذين لديهم أنظمة تشغيل ذات إصدارات أقل من هذه القيمة من تشغيل التطبيق.

UIWebViewDecelerationSpeed ​​

(سلسلة نصية)

(ios)

القيمة الافتراضية: normal

القيم المسموح بها: normal و fast

تتحكم هذه الخاصية في سرعة تباطؤ (deceleration) التمرير (scrolling). السرعة الافتراضية هي السرعة العادية (normal) في معظم التطبيقات المحلية، أما في منصة Mobile Safari، فالسرعة الافتراضية هي fast.

WindowSize (سلسلة نصية)

(OS X 4.0.0+) 

القيمة الافتراضية: auto

تحدد حجم نافذة التطبيق.

تقبل الصيغة WxH، والتي تحدد عرضًا وارتفاعًا معينًا، أو القيم الخاصة auto و fullscreen. الخيار الأخير سيفتح نافذة بلا حدود (borderless) تمتد على كامل حيز سطح المكتب. يرجى ملاحظة أن هذا يختلف عن الوضع fullscreen العادي في منصات OS X، والذي لن يمتد على عدة شاشات.

ملاحظة: الخيار العام fullscreen ليس له أي تأثير على منصات OS X.

WindowsDefaultUriPrefix (سلسلة نصية)

(ويندوز)

القيم المسموح بها: ms-appx://‎ و ms-appx-web://‎

تحدد هذه الخاصية ما إذا كنت تريد أن يستهدف تطبيقك السياق المحلي أو السياق البعيد (remote context) باعتباره عنوان الإطلاق (startup URI).

عند تطوير تطبيقات لمنصة ويندوز 10، فالإعداد الافتراضي سيكون هو السياق البعيد (ms-appx-web://‎). لكي يكون لديك تطبيق في وضع محلي، وغير متأثر بقيود الوضع البعيد (Remote Mode)، فيجب عليك تعيين هذا الإعداد عند القيمة ms-appx://‎، وعدم إعطاء أيٍّ من عناصر <access> عناوين URI بعيدة.

الوضع المحلي هو الوضع الافتراضي لمنصة ويندوز 8.1.

WindowsStoreDisplayName (سلسلة نصية)

(ويندوز)

اسم للناشر لأجل عرضه على المستخدمين.
WindowsStoreIdentityName (سلسلة نصية)

(ويندوز)

اسم التعريف المستخدم في متجر ويندوز. تحدد هذه الخاصية معرفًا فريدًا عامًّا لحزمة معينة. يُمثّل اسم تعريف الحزمة على هيئة سلسلة من خاصيات الحزمة. انظر صفحة صفحة الهوية في ملف بيان الحُزمة لمزيد من التفاصيل.
WindowsStorePublisherName (سلسلة نصية)

(ويندوز)

اسم الناشر.
WindowsToastCapable (قيمة منطقية)

(ويندوز)

القيمة الافتراضية: false

تشير القيمة true إلى أنه يُسمح للتطبيق بتقديم "الإشعارات السريعة" (toast notifications).

deployment-target (سلسلة نصية)

(ios)

يعيّن هذا الإعداد قيمة IPHONEOSDEPLOYMENTTARGET عند البناء، والذي يترجم في النهاية إلى الخاصية MinimumOSVersion في ملف الأرشيف ipa. لمزيد من التفاصيل، يرجى الرجوع إلى توثيق Apple حول إعدادات النشر.
target-device (سلسلة نصية)

(ios)

القيمة الافتراضية: 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 تفضيلات خاصة بمنصة -->
<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 تفضيلات خاصة بمنصة -->
<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 تفضيلات خاصة -->
<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 تفضيلات خاصة بمنصة -->
<preference name="HideMousePointer" value="5"/>
<preference name="OSXLocalStoragePath" value="~/.myapp/database"/>
<preference name="WindowSize" value="800x400"/>
<preference name="EnableWebGL" value="true"/>

feature

إن كنت تستخدم واجهة سطر الأوامر لإنشاء التطبيقات، فاستخدم الأمر cordova plugin لتمكين الواجهات البرمجية (APIs) للجهاز. ولن يعدّل ذلك الملف config.xml، لذلك فإن هذا العنصر لن ينطبق على سير عملك.

إذا كنت تعمل مباشرةً في بيئة العمل SDK وكنت تستخدم الملف config.xml المخصوص بالمنصة كمصدر، فاستخدم هذا الوسم لتمكين الواجهات البرمجية على مستوى الجهاز والإضافات الخارجية، إذ غالبًا ما تظهر مع قيم مخصصة في ملفات config.xml المخصوصة بالمنصات. راجع مرجع واجهة التطبيقات API للمزيد من التفاصيل حول كيفية تحديد كل ميزة. وراجع صفحة دليل تطوير الإضافات لمزيد من المعلومات حول إضافة الإضافات.

ملاحظة: في معظم الأحيان، ليس عليك تعيين هذا الوسم مباشرة.

الخاصيات (النوع)

فقط للمنصات

الوصف
name (سلسلة نصية) (مطلوب)

اسم الإضافة المراد تمكينها.

param

يستخدم هذا الوسم لتحديد معاملات الإضافة؛ على سبيل المثال: ما هي الحزمة التي ستُسترد شيفة الإضافة منها، وما إذا كانت شيفرة الإضافة ستُهيَّأ أثناء تهيئة العارض.

الخاصيات (النوع)

فقط للمنصات

الوصف
name (سلسلة نصية)

(أندرويد - osx - ios)

(مطلوب)

القيم المسموح بها: android-package و ios-package و osx-package و onload.

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

value (سلسلة نصية أو قيمة منطقية)

(أندرويد - osx - ios)

(مطلوب)

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

اطلع على المثال التالي:

<!--هكذا تحدد الواجهة البرمجية للجهاز لتطبيقات أندرويد -->
<feature name="Device">
  <param name="android-package" value="org.apache.cordova.device.Device" />
</feature>
<!-- ios هكذا تظهر العناصر لمشاريع -->
<feature name="Device">
  <param name="ios-package" value="CDVDevice" />
  <param name="onload" value="true" />
</feature>
<!-- osx هكذا تظهر العناصر لمشاريع  -->
<feature name="Device">
  <param name="osx-package" value="CDVDevice" />
  <param name="onload" value="true" />
</feature>

platform

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

استخدم العنصر platform لتحديد الإعدادات الذي يجب أن تظهر حصرًا في الملف config.xml الخاص بالمنصة.

الخاصيات (النوع)

فقط للمنصات

الوصف
name (سلسلة نصية) (مطلوب)

المنصة المراد تحديد تفضيلاتها.

مثال على الوسم platform:

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

hook

يمثل هذا العنصر برنامجك النصي (script) المخصص، والذي سيٌستدعى من قبل كوردوفا عند وقوع حدثٍ معينٍ (بعد إضافة الإضافة مثلًا أو عند استدعاء سلسلة التحضير الخاصة بالمنصة). هذا مفيد عندما تحتاج إلى توسيع كوردوفا. راجع صفحة الخطافات لمزيد من المعلومات.

الخاصيات (النوع)

فقط للمنصات

الوصف
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 (سلسلة نصية)

(أندرويد - ios)

(مطلوب)

موقع الملف بالنسبة إلى 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>

انظر أيضًا

مصادر