الفرق بين المراجعتين لصفحة: «Cordova/cordova plugin inappbrowser»

من موسوعة حسوب
لا ملخص تعديل
لا ملخص تعديل
سطر 3: سطر 3:
تساعد إضافة المتصفح الداخلي (<code>cordova-plugin-inappbrowser</code>)  
تساعد إضافة المتصفح الداخلي (<code>cordova-plugin-inappbrowser</code>)  
[[تصنيف: Plugin]]
[[تصنيف: Plugin]]
على عرض المقالات ومقاطع الفيديو وموارد الويب المفيدة داخل تطبيقك. كما تمُكن المستخدمين من الاطلاع على صفحات الويب دون مغادرة تطبيقك.  
على عرض المقالات ومقاطع الفيديو وموارد الويب المفيدة داخل تطبيقك. كما تمُكن المستخدمين من الاطلاع على صفحات الويب دون مغادرة التطبيق.  


لمعرفة كيفية استخدام هذه الإضافة، اطلع على المثال التوضيحي في أسفل هذه الصفحة.
لمعرفة كيفية استخدام هذه الإضافة، اطلع على [[Cordova/cordova plugin inappbrowser#.D9.85.D8.AB.D8.A7.D9.84 .D8.AA.D9.88.D8.B6.D9.8A.D8.AD.D9.8A|المثال التوضيحي]] في أسفل هذه الصفحة.


توفر هذه الإضافة مُتصفحا يمكن عرضه عند استدعاء التابع <code>cordova.InAppBrowser.open()‎</code>.  
توفر هذه الإضافة مُتصفحا يمكن عرضه عند استدعاء التابع <code>cordova.InAppBrowser.open()‎</code>.  
سطر 17: سطر 17:
يوفر <code>InAppBrowser</code> بشكل افتراضي عناصر الواجهة الرسومية (GUI) للمستخدم (back, forward, done).  
يوفر <code>InAppBrowser</code> بشكل افتراضي عناصر الواجهة الرسومية (GUI) للمستخدم (back, forward, done).  


للتوافق مع الإصدارات القديمة، تنشُبُ (hooks) هذه الإضافة أيضًا الدالةَ <code>window.open</code>. ومع ذلك، يمكن أن يكون [[Cordova/hooks|لخُطّاف]] <code>window.open</code> الذي تنشُبه الإضافة تأثيرات جانبية غير مقصودة (خاصة إذا تم تضمين هذه الإضافة كارتباط لإضافة أخرى). سيُزال [[Cordova/hooks|خطاف]] <code>window.open</code> في إصدار رئيسي مستقبلًا. إلى حين إزالة الخطاف من الإضافة، يمكن للتطبيقات استعادة السلوك الافتراضي يدويًا:  
للتوافق مع الإصدارات القديمة، تَنشُبُ (hooks) هذه الإضافةُ الدالةَ <code>window.open</code> مع [[Cordova/hooks|خُطّاف]]. لكن يمكن أن يكون [[Cordova/hooks|للخُطّاف]] الذي نُشِبت فيه الدالةُ <code>window.open</code> تأثيرات جانبية غير مقصودة (خاصة إذا تم تضمين هذه الإضافة كارتباط لإضافة أخرى). سيُزال [[Cordova/hooks|خطاف]] <code>window.open</code> في إصدار رئيسي مستقبلًا. إلى حين إزالة ذلك الخطاف من الإضافة، يمكن للتطبيقات استعادة السلوك الافتراضي يدويًا:  
<syntaxhighlight lang="javascript">delete window.open // إعادة رد النداء إلى وضعه الافتراضي</syntaxhighlight>  
<syntaxhighlight lang="javascript">delete window.open // إعادة رد النداء إلى وضعه الافتراضي</syntaxhighlight>  


سطر 29: سطر 29:
يمكنك تثبيت هذه الإضافة عبر الأمر التالي:<syntaxhighlight lang="shell">cordova plugin add cordova-plugin-inappbrowser‎</syntaxhighlight>  
يمكنك تثبيت هذه الإضافة عبر الأمر التالي:<syntaxhighlight lang="shell">cordova plugin add cordova-plugin-inappbrowser‎</syntaxhighlight>  


ان كنت تريد أن تُعرض جميع الصفحات المُحملة في تطبيقك في <code>InAppBrowser</code>، يمكنك ببساطة أن تنشُب <code>window.open</code> أثناء التهيئة. مثلًا:  
ان كنت تريد أن تُعرض جميع الصفحات المُحملة في تطبيقك في نافذة <code>InAppBrowser</code>، يمكنك ببساطة أن تنشُب <code>window.open</code> أثناء التهيئة. مثلًا:  
<syntaxhighlight lang="javascript">document.addEventListener("deviceready", onDeviceReady, false);
<syntaxhighlight lang="javascript">document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
function onDeviceReady() {
سطر 35: سطر 35:
}‎</syntaxhighlight>  
}‎</syntaxhighlight>  


== cordova.InAppBrowser.open==  
== <code>cordova.InAppBrowser.open</code>==  


يفتح هذا التابع عنوانًا في نسخة جديدة (instance) من <code>InAppBrowser</code>، أو في نسخة من المتصفح الحالي، أو متصفح النظام.  
يفتح هذا التابع عنوانًا في نسخة جديدة (instance) من <code>InAppBrowser</code>، أو في نسخة من المتصفح الحالي، أو متصفح النظام.  
سطر 41: سطر 41:


=== المعاملات ===
=== المعاملات ===
<code>url</code> العنوان المراد تحميله (سلسلة نصية). مرّر هذا المعامل إلى الدالةَ <code>encodeURI()‎</code> إن كان العنوان يحتوي على أحرف اليونيكود.
<code>url</code>


<code>target</code> يحدد المكان الذي سيُحمّل فيه العنوان، وهو معامل اختياري، قيمته الافتراضية تساوي ‎<code>_self</code>. (سلسلة نصية)
العنوان المراد تحميله (سلسلة نصية). مرّر هذا المعامل إلى الدالةَ <code>encodeURI()‎</code> إن كان العنوان يحتوي على أحرف اليونيكود.
 
<code>target</code>  
 
يحدد المكان الذي سيُحمّل فيه العنوان، وهو معامل اختياري، قيمته الافتراضية تساوي ‎<code>_self</code>. (سلسلة نصية)
* <code>_self</code>: يُفتح في [[Cordova/webviews|عارض]] كوردوفا إن كان العنوان مُدرجًا في [[Cordova/whitelist|اللائحة البيضاء]]، وإلا فسيُفتح في نافذة <code>InAppBrowser</code>.  
* <code>_self</code>: يُفتح في [[Cordova/webviews|عارض]] كوردوفا إن كان العنوان مُدرجًا في [[Cordova/whitelist|اللائحة البيضاء]]، وإلا فسيُفتح في نافذة <code>InAppBrowser</code>.  
* <code>_blank</code>: يُفتح في <code>InAppBrowser</code>.  
* <code>_blank</code>: يُفتح في <code>InAppBrowser</code>.  
سطر 54: سطر 58:
* <code>location</code>: اضبط هذه الخاصية عند القيمة <code>yes</code> أو <code>no</code> لإظهار شريط التصفح (location bar) في <code>InAppBrowser</code> أو إخفائه.  
* <code>location</code>: اضبط هذه الخاصية عند القيمة <code>yes</code> أو <code>no</code> لإظهار شريط التصفح (location bar) في <code>InAppBrowser</code> أو إخفائه.  
يدعم أندرويد هذه الخيارات الإضافية:
يدعم أندرويد هذه الخيارات الإضافية:
* <code>hidden</code>: اضبطه هذا الخيار عند القيمة <code>yes</code> لإنشاء المتصفح وتحميل الصفحة بدون إظهاره. يُطلق الحدث <code>loadstop</code> عند اكتمال التحميل. احذف هذا الخيار أو اضبطه عند القيمة <code>no</code> (القيمة الافتراضية) لفتح المتصفح وتحميل الصفحة بشكل طبيعي.  
* <code>hidden</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لإنشاء المتصفح وتحميل الصفحة بدون إظهاره. يُطلق الحدث <code>loadstop</code> عند اكتمال التحميل. احذف هذا الخيار أو اضبطه عند القيمة <code>no</code> (القيمة الافتراضية) لفتح المتصفح وتحميل الصفحة بشكل طبيعي.  


* <code>clearcache</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لمحو ذاكرة التخزين المؤقت لملف تعريف الارتباط (cookie cache) في المتصفح قبل فتح النافذة الجديدة  
* <code>clearcache</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لمحو ذاكرة التخزين المؤقت لملفات تعريف الارتباط (cookie cache) في المتصفح قبل فتح النافذة الجديدة  
* <code>clearsessioncache</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لمحو ذاكرة التخزين المؤقت لملف تعريف الارتباط قبل فتح النافذة الجديدة  
* <code>clearsessioncache</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لمحو ذاكرة التخزين المؤقت لملفات تعريف الارتباط قبل فتح النافذة الجديدة  
* <code>closebuttoncaption</code>: اعط لهذا الخيار سلسلةً نصيةً لاستخدامها كتسميةٍ للزر بدلًا من الحرف <code>X</code>. تذكّر أنه سيكون عليك مراعاة الإعدادات اللغوية المحلية لهذه القيمة بنفسك.  
* <code>closebuttoncaption</code>: اعط لهذا الخيار سلسلةً نصيةً لاستخدامها كتسميةٍ للزر بدلًا من الحرف <code>X</code>. تذكّر أنه سيكون عليك مراعاة الإعدادات اللغوية المحلية بنفسك.  
* <code>closebuttoncolor</code>: اعط لهذا الخيار سلسلةً نصية تمثل قيمة لونية سداسي عشرية (hex color) صالحة، مثل: <code>#00ff00</code>، لأجل تغيير لون زر الإغلاق الافتراضي، سواءً كان نصًا، أو كان يساوي القيمة الافتراضية <code>X</code>. لا يكون لهذا الخيار تأثير إلا إن كان المستخدم قد عيّن الخيار location إلى القيمة <code>yes</code>.  
* <code>closebuttoncolor</code>: اعط لهذا الخيار سلسلةً نصية تمثل قيمة لونية سداسعشرية (hex color) صالحة، مثل: <code>#00ff00</code>، لأجل تغيير لون زر الإغلاق الافتراضي، سواءً كان نصًا، أو كان يساوي القيمة الافتراضية <code>X</code>. لا يكون لهذا الخيار تأثير إلا إن كان المستخدم قد عيّن الخيار <code>location</code> إلى القيمة <code>yes</code>.  
* <code>footer</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لإظهار زر الإغلاق في أسفل النافذة بشكل مماثلٍ للزر <code>Done</code> في منصة iOS. سيظهر زر الإغلاق بشكل مماثلٍ لترويسة (header) النافذة، لذلك استخدم <code>closebuttoncaption</code> و <code>closebuttoncolor</code> لتعيين خصائصه.  
* <code>footer</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لإظهار زر الإغلاق في أسفل النافذة بشكل مماثلٍ للزر <code>Done</code> في منصة iOS. سيظهر زر الإغلاق بشكل مماثلٍ لترويسة (header) النافذة، لذلك استخدم <code>closebuttoncaption</code> و <code>closebuttoncolor</code> لتعيين خصائصه.  
* <code>footercolor</code>: اعط لهذا الخيار سلسلة نصية تمثل لونًا سداسي عشريًا (hex color) صالحًا، مثل <code>#00ff00</code> أو <code>#CC00ff00</code> (<code>#aarrggbb</code>)‎، لتغيير لون تذييل النافذة الافتراضي. ليس لهذا الخيار تأثيرٌ إلا إن عيّن المُستخدم الخيارَ <code>footer</code> إلى القيمة <code>yes</code>.  
* <code>footercolor</code>: اعط لهذا الخيار سلسلة نصية تمثل لونًا سداسعشريًا (hex color) صالحًا، مثل <code>#00ff00</code> أو <code>#CC00ff00</code> (<code>#aarrggbb</code>)‎، لتغيير لون تذييل (footer) النافذة الافتراضي. ليس لهذا الخيار تأثيرٌ إلا إن عيّن المُستخدم الخيارَ <code>footer</code> إلى القيمة <code>yes</code>.  
* <code>hardwareback</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لاستخدام زر الرجوع الخاص بالجهاز للرجوع للخلف بحسب تاريخ النافذة <code>InAppBrowser</code>. إذا لم تكن هناك صفحات سابقة، فسيتم إغلاق <code>InAppBrowser</code>. القيمة الافتراضية هي <code>yes</code>، إن كنت تريد أن تجعل زر الرجوع يغلق <code>InAppBrowser</code> ، فععيّن هذا الخيار إلى القيمة <code>no</code> .  
* <code>hardwareback</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لاستخدام زر الرجوع الخاص بالجهاز للرجوع للخلف إلى الصفحات الموجودة في تاريخ نافذة <code>InAppBrowser</code> (الصفحات التي زرتها من قبل). إذا لم تكن هناك صفحات سابقة، فسيتم إغلاق <code>InAppBrowser</code>. القيمة الافتراضية هي <code>yes</code>، إن كنت تريد أن تجعل زر الرجوع يغلق نافذة <code>InAppBrowser</code> ، فعيّن هذا الخيار إلى القيمة <code>no</code> .  
* <code>hidenavigationbuttons</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لإخفاء أزرار التصفح (navigation buttons) على شريط التصفح، ليس لهذا الخيار تأثير إلا إن كان المستخدم قد عيّن الخيار <code>location</code> عند القيمة <code>yes</code>. القيمة الافتراضية هي <code>no</code>.  
* <code>hidenavigationbuttons</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لإخفاء أزرار التصفح (navigation buttons) على شريط التصفح (location toolbar)، ليس لهذا الخيار تأثير إلا إن كان المستخدم قد عيّن الخيار <code>location</code> عند القيمة <code>yes</code>. القيمة الافتراضية هي <code>no</code>.  
* <code>hideurlbar</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لإخفاء شريط العنوان من شريط التصفح، ليس لهذا الخيار تأثير إلا إن كان المستخدم قد عيّن الخيار <code>location</code> عند القيمة <code>yes</code>. القيمة الافتراضية هي <code>no</code>.  
* <code>hideurlbar</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لإخفاء شريط العنوان من شريط التصفح، ليس لهذا الخيار تأثير إلا إن كان المستخدم قد عيّن الخيار <code>location</code> عند القيمة <code>yes</code>. القيمة الافتراضية هي <code>no</code>.  
* <code>navigationbuttoncolor</code>: اعط لهذا الخيار سلسلة نصية تمثل لونًا سداسي عشريًا (hex color) صالحًا، مثل: <code>#00ff00</code>، لتغيير لون أزرار التصفح الافتراضي. ليس لهذا الخيار تأثير إلا إن كان المستخدم قد عيّن الخيار <code>location</code> عند القيمة <code>yes</code>، ولم يُعيّن الخيار <code>hidenavigationbuttons</code> عند القيمة <code>yes</code>.  
* <code>navigationbuttoncolor</code>: اعط لهذا الخيار سلسلة نصية تمثل لونًا سداسعشريًا (hex color) صالحًا، مثل: <code>#00ff00</code>، لتغيير لون أزرار التصفح الافتراضي. ليس لهذا الخيار تأثير إلا إن كان المستخدم قد عيّن الخيار <code>location</code> عند القيمة <code>yes</code>، وكانت قيمة الخيار <code>hidenavigationbuttons</code> تخالف <code>yes</code>.  
* <code>toolbarcolor</code>: اعط لهذا الخيار سلسلة نصية تمثل لونًا سداسي عشريًا (hex color) صالحًا، مثل: <code>#00ff00</code>، لتغيير لون شريط الأدوات لافتراضي. ليس لهذا الخيار تأثير إلا إن كان المستخدم قد عيّن الخيار <code>location</code> عند القيمة <code>yes</code>.  
* <code>toolbarcolor</code>: اعط لهذا الخيار سلسلة نصية تمثل لونًا سداسعشريًا صالحًا، مثل: <code>#00ff00</code>، لتغيير لون شريط الأدوات الافتراضي. ليس لهذا الخيار تأثير إلا إن كان المستخدم قد عيّن الخيار <code>location</code> عند القيمة <code>yes</code>.  
* <code>zoom</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لعرض عناصر التحكم في الحجم في متصفح أندرويد، أو اضبطه عند القيمة <code>no</code> إن أردت إخفاءها. القيمة الافتراضية هي <code>yes</code>.  
* <code>zoom</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لعرض عناصر التحكم في الحجم في متصفح أندرويد، أو اضبطه عند القيمة <code>no</code> إن أردت إخفاءها. القيمة الافتراضية هي <code>yes</code>.  
* <code>mediaPlaybackRequiresUserAction</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لمنع صوتيات أو فيديوها HTML5 من التشغيل التلقائي (القيمة الافتراضية هي <code>no</code>).  
* <code>mediaPlaybackRequiresUserAction</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لمنع صوتيات أو فيديوها HTML5 من التشغيل التلقائي (القيمة الافتراضية هي <code>no</code>).  
* <code>shouldPauseOnSuspend</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لإيقاف [[Cordova/webviews|عارض]] <code>InAppBrowser</code> أو استئنافه مع التطبيق، وذلك لإيقاف صوت الخلفية (قد يكون هذا ضروريًا لتجنب المشكلات التي تخص Google Play كما هو موضح في الصفحة [https://issues.apache.org/jira/browse/CB-11013 CB-11013]).  
* <code>shouldPauseOnSuspend</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لإيقاف [[Cordova/webviews|عارض]] <code>InAppBrowser</code> أو استئنافه مع التطبيق، وذلك لإيقاف صوت الخلفية (قد يكون هذا ضروريًا لتجنب المشكلات التي تخص Google Play كما هو موضح في الصفحة [https://issues.apache.org/jira/browse/CB-11013 CB-11013]).  
* <code>useWideViewPort</code>: يحدد هذا الخيار ما إذا كان [[Cordova/webviews|العارض]] سيدعم وسم [[HTML]] الوصفي "<code>viewport</code>"، أو أنّ عليه أن يستخدم إطار عرضٍ (viewport) واسعٍ. عندما يُعطى هذا الخيار القيمة <code>no</code>، سيُعيّن عرض المخطط (layout) إلى قيمة عرض [[Cordova/webviews|العارض]] محسوبةً بوحدة البكسل المستقلة عن الجهاز (CSS). إما إن أُعطي هذا الخيار القيمة <code>yes</code>، وكانت الصفحة تحتوي الوسم الوصفي <code>viewport</code>، فستُستخدم قيمة العرض المحددة في الوسم. إن لم تحتوِ الصفحة على الوسم، أو لم تحدد قيمةً للعرض، فسيُستخدم إطار عرضٍ واسعٍ. (القيمة الافتراضية هي <code>yes</code>).  
* <code>useWideViewPort</code>: يحدد هذا الخيار ما إذا كان [[Cordova/webviews|العارض]] سيدعم وسم [[HTML]] الوصفي "<code>viewport</code>"، أو أنّ عليه أن يستخدم إطار عرضٍ (viewport) واسعٍ. عندما يُعطى هذا الخيار القيمة <code>no</code>، سيُعيّن عرض المخطط (layout) إلى قيمة العرض width في [[Cordova/webviews|العارض]] محسوبةً بوحدات بكسل مستقلة عن الجهاز المُستخدم (CSS). إما إن أُعطي هذا الخيار القيمة <code>yes</code>، وكانت الصفحة تحتوي الوسم الوصفي <code>viewport</code>، فستُستخدم قيمة العرض المحددة في الوسم. إن لم تحتوِ الصفحة على الوسم، أو لم تحدد قيمةً للعرض، فسيُستخدم إطار عرضٍ واسعٍ. (القيمة الافتراضية هي <code>yes</code>).  


تدعم منصة iOS الخيارات الإضافية التالية:  
تدعم منصة iOS الخيارات الإضافية التالية:  
سطر 76: سطر 80:
* <code>clearcache</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لمحو ذاكرة التخزين المؤقت لملفات تعريف الارتباط (cookie cache) للمتصفح قبل فتح النافذة الجديدة  
* <code>clearcache</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لمحو ذاكرة التخزين المؤقت لملفات تعريف الارتباط (cookie cache) للمتصفح قبل فتح النافذة الجديدة  
* <code>clearsessioncache</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لمحو ذاكرة التخزين المؤقت لملفات تعريف الارتباط قبل فتح النافذة الجديدة  
* <code>clearsessioncache</code>: اضبط هذا الخيار عند القيمة <code>yes</code> لمحو ذاكرة التخزين المؤقت لملفات تعريف الارتباط قبل فتح النافذة الجديدة  
* <code>closebuttoncolor</code>: اعط لهذا الخيار سلسلةً نصيةً تمثل لونًا سداس عشريًا (hex color) صالحًا، مثل: <code>#00ff00</code>، لتغيير لون الزر <code>Done</code> الافتراضي. لا يُطبق هذا الإعداد إلا عند تفعيل شريط الأدوات.  
* <code>closebuttoncolor</code>: اعط لهذا الخيار سلسلةً نصيةً تمثل لونًا سداسعشريًا (hex color) صالحًا، مثل: <code>#00ff00</code>، لتغيير لون الزر <code>Done</code> الافتراضي. لا يُطبق هذا الإعداد إلا عند تفعيل شريط الأدوات.  
* <code>closebuttoncaption</code>: اعط لهذا الخيار سلسلةً نصيةً لاستخدامها كتسميةِ للزر <code>Done</code>. تذكر أن عليك مراعاة الإعدادات اللغوية المحلية بنفسك.  
* <code>closebuttoncaption</code>: اعط لهذا الخيار سلسلةً نصيةً لاستخدامها كتسميةِ للزر <code>Done</code>. تذكر أن عليك مراعاة الإعدادات اللغوية المحلية بنفسك.  
* <code>disallowoverscroll</code>: يُضبط هذا الخيار عند القيمة <code>yes</code> أو <code>no</code> (الإعداد الافتراضي هو <code>no</code>). لتشغيل أو إيقاف الخاصية <code>UIWebViewBounce</code>.  
* <code>disallowoverscroll</code>: يُضبط هذا الخيار عند القيمة <code>yes</code> أو <code>no</code> (الإعداد الافتراضي هو <code>no</code>). لتشغيل أو إيقاف الخاصية <code>UIWebViewBounce</code>.  
* <code>hidenavigationbuttons</code>: اضبط هذا الخيار عند القيمة <code>yes</code> أو <code>no</code> لإظهار أزرار التصفح (navigation buttons) في شريط الأدوات أو إخفائها (الإعداد الافتراضي هو <code>no</code>). لا يُطبّق هذا الخيار إلا عند تفعيل شريط الأدوات.  
* <code>hidenavigationbuttons</code>: اضبط هذا الخيار عند القيمة <code>yes</code> أو <code>no</code> لإظهار أزرار التصفح (navigation buttons) في شريط الأدوات أو إخفائها (الإعداد الافتراضي هو <code>no</code>). لا يُطبّق هذا الخيار إلا عند تفعيل شريط الأدوات.  
* <code>navigationbuttoncolor</code>: اعط لهذا الخيار سلسلةًً نصيةًً تمثل لونًا سداس عشريًا (hex color) صالحًا، مثل: <code>#00ff00</code>، لتغيير اللون الافتراضي. لا يُطبّق هذا الخيار إلا عند إظهار أزرار التصفح.  
* <code>navigationbuttoncolor</code>: اعط لهذا الخيار سلسلةًً نصيةًً تمثل لونًا سداسعشريًا (hex color) صالحًا، مثل: <code>#00ff00</code>، لتغيير اللون الافتراضي. لا يُطبّق هذا الخيار إلا عند إظهار أزرار التصفح.  
* <code>toolbar</code>: اعط لهذا الخيار القيمة <code>yes</code> أو <code>no</code> لإظهار شريط الأدوات أو إخفائه في <code>InAppBrowser</code> (الإعداد الافتراضي هو <code>yes</code>)  
* <code>toolbar</code>: اعط لهذا الخيار القيمة <code>yes</code> أو <code>no</code> لإظهار شريط الأدوات أو إخفائه في نافذة <code>InAppBrowser</code> (الإعداد الافتراضي هو <code>yes</code>)  
* <code>toolbarcolor</code>: اعط لهذا الخيار سلسلةً نصيةً تمثل لونًا سداس عشريًا (hex color) صالحًا، مثل: ‎<code>#00ff00</code>، لتغيير اللون الافتراضي لشريط الأدوات. لا يُطبّق هذا الخيار إلا عند تفعيل شريط الأدوات.  
* <code>toolbarcolor</code>: اعط لهذا الخيار سلسلةً نصيةً تمثل لونًا سداسعشريًا (hex color) صالحًا، مثل: ‎<code>#00ff00</code>، لتغيير اللون الافتراضي لشريط الأدوات. لا يُطبّق هذا الخيار إلا عند تفعيل شريط الأدوات.  
* <code>toolbartranslucent</code>: اعط لهذا الخيار القيمة <code>yes</code> أو <code>no</code> لجعل شريط الأدوات شبه شفاف (translucent) (القيمة الافتراضية هي <code>yes</code>). لا يُطبّق هذا الخيار إلا عند تفعيل شريط الأدوات.  
* <code>toolbartranslucent</code>: اعط لهذا الخيار القيمة <code>yes</code> أو <code>no</code> لجعل شريط الأدوات شبه شفاف (translucent) (القيمة الافتراضية هي <code>yes</code>). لا يُطبّق هذا الخيار إلا عند تفعيل شريط الأدوات.  
* <code>enableViewportScale</code>: اضبط هذا الخيار عند القيمة <code>yes</code> أو <code>no</code> لمنع تعديل حجم إطار العرض (viewport) عبر الوسم الوصفي (القيمة الافتراضية هي <code>no</code>).  
* <code>enableViewportScale</code>: اضبط هذا الخيار عند القيمة <code>yes</code> أو <code>no</code> لمنع تعديل حجم إطار العرض (viewport) عبر الوسم الوصفي (القيمة الافتراضية هي <code>no</code>).  
سطر 109: سطر 113:
=== ملاحظات خاصة بمنصة OSX ===  
=== ملاحظات خاصة بمنصة OSX ===  


في الوقت الحالي، القيمة الوحيدة المدعومة للمعامل <code>target</code> في OSX هي ‎<code>_system</code>.  
في الوقت الحالي، القيمة الوحيدة المدعومة للمعامل <code>target</code> في منصة OSX هي ‎<code>_system</code>.  


لم يتم بعدُ تقديم الهدفين ‎<code>_blank</code> و ‎<code>_self</code>، وسيُتجاهلان بصمت.  
لم يتم بعدُ تقديم الهدفين ‎<code>_blank</code> و ‎<code>_self</code>، وسيُتجاهلان بصمت.  
=== ملاحظات خاصة بالمتصفحات (Browsers) ===  
=== ملاحظات خاصة بالمتصفحات (Browsers) ===  
* تُقدم هذه الإضافةعبر الإطار الذكي iframe،  
* تُقدم هذه الإضافة عبر الإطار الذكي iframe،  
* لم يتم تقديم تاريخ التصفح (Navigation history) بعدُ (أي الزِّرين <code>back</code> و <code>forward</code> في شريط التصفح <code>LocationBar</code>).  
* لم يتم تقديم تاريخ التصفح (Navigation history) بعدُ (أي الزِّرين <code>back</code> و <code>forward</code> في شريط التصفح <code>LocationBar</code>).  


==InAppBrowser==  
==<code>InAppBrowser</code>==  


يمثل <code>InAppBrowser</code> الكائن المُعاد من استدعاء التابع <code>cordova.InAppBrowser.open</code> عند تعيين المعامل <code>target</code> إلى القيمة <code>'‎_blank'</code>.  
يمثل <code>InAppBrowser</code> الكائن المُعاد من استدعاء التابع <code>cordova.InAppBrowser.open</code> عند تعيين المعامل <code>target</code> إلى القيمة <code>'‎_blank'</code>.  
سطر 177: سطر 181:
}‎</syntaxhighlight>  
}‎</syntaxhighlight>  
==== خاصيات الكائن <code>InAppBrowserEvent</code> ====  
==== خاصيات الكائن <code>InAppBrowserEvent</code> ====  
* <code>type</code>: اسم الحدث، والذي يساوي إمّا <code>loadstart</code> أو <code>loadstop</code> أو <code>loaderror</code> أو <code>exit</code>. ((سلسلة نصية)  
* <code>type</code>: اسم الحدث، والذي يساوي إمّا <code>loadstart</code> أو <code>loadstop</code> أو <code>loaderror</code> أو <code>exit</code>. (سلسلة نصية)  
* <code>url</code>: العنوان الذي تم تحميله. (سلسلة نصية)  
* <code>url</code>: العنوان الذي تم تحميله. (سلسلة نصية)  
* <code>code</code>: رمز الخطأ، لا تكون هذه الخاصية مُتاحةً إلا في حال إطلاق الحدث <code>loaderror</code>. ((عدد)  
* <code>code</code>: رمز الخطأ، لا تكون هذه الخاصية مُتاحةً إلا في حال إطلاق الحدث <code>loaderror</code>. (عدد)  
* <code>message</code>: رسالة الخطأ، لا تكون هذه الخاصية مُتاحةً إلا في حال إطلاق الحدث <code>loaderror</code>. (سلسلة نصية)  
* <code>message</code>: رسالة الخطأ، لا تكون هذه الخاصية مُتاحةً إلا في حال إطلاق الحدث <code>loaderror</code>. (سلسلة نصية)  
==== المنصات المدعومة ====  
==== المنصات المدعومة ====  
سطر 199: سطر 203:


==== المعاملات ====
==== المعاملات ====
* <code>eventname</code>: يمثل هذا الحدث المُراد التوقف عن الإنصات له. (سلسلة نصية)
* <code>eventname</code>: يمثل هذا المعاملُ الحدثَ المُراد التوقف عن الإنصات له. (سلسلة نصية)
** <code>loadstart</code>: يُطلق هذا الحدث عندما يبدأ <code>InAppBrowser</code> في تحميل عنوان URL.  
** <code>loadstart</code>: يُطلق هذا الحدث عندما يبدأ <code>InAppBrowser</code> في تحميل عنوان URL.  
** <code>loadstop</code>: يُطلق هذا الحدث عند انتهاء <code>InAppBrowser</code> من تحميل عنوان URL.  
** <code>loadstop</code>: يُطلق هذا الحدث عند انتهاء <code>InAppBrowser</code> من تحميل عنوان URL.  
سطر 230: سطر 234:


===<code>InAppBrowser.show</code>===  
===<code>InAppBrowser.show</code>===  
يُظهر هذا التابع نافذة <code>InAppBrowser</code> فُتِحت مخفية. استدعاء هذا التابع لن يكون له أي تأثير إن كان <code>InAppBrowser</code> مرئيًا.  
يُظهر هذا التابع نافذةً <code>InAppBrowser</code> فُتِحت وهي مخفية. استدعاء هذا التابع لن يكون له أي تأثير إن كانت نافذة <code>InAppBrowser</code> مرئيًةً.  
<syntaxhighlight lang="javascript">ref.show();‎</syntaxhighlight>المتغير <code>ref</code> يُشير إلى نافذة <code>InAppBrowser</code> ‏(<code>InAppBrowser</code>)
<syntaxhighlight lang="javascript">ref.show();‎</syntaxhighlight>المتغير <code>ref</code> يُشير إلى نافذة <code>InAppBrowser</code> ‏(<code>InAppBrowser</code>)


سطر 244: سطر 248:


===<code>InAppBrowser.hide</code>===  
===<code>InAppBrowser.hide</code>===  
يُخفي هذا التابع نافذة <code>InAppBrowser</code>. استدعاء هذا التابع ليس له أي تأثير إن كان <code>InAppBrowser</code> مخفيًا مسبقاً.  
يُخفي هذا التابع نافذة <code>InAppBrowser</code>. استدعاء هذا التابع ليس له أي تأثير إن كانت نافذة <code>InAppBrowser</code> مخفيًةً مسبقاً.  
<syntaxhighlight lang="javascript">ref.hide();‎</syntaxhighlight>المتغير <code>ref</code> يُشير إلى نافذة <code>InAppBrowser</code> ‏(<code>InAppBrowser</code>)
<syntaxhighlight lang="javascript">ref.hide();‎</syntaxhighlight>المتغير <code>ref</code> يُشير إلى نافذة <code>InAppBrowser</code> ‏(<code>InAppBrowser</code>)


سطر 300: سطر 304:
== مثال توضيحي ==  
== مثال توضيحي ==  


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


في هذه الفقرة تجد بعض المقتطفات البرمجية التي توضح كيفية القيام بذلك.  
في هذه الفقرة تجد بعض المقتطفات البرمجية التي توضح كيفية القيام بذلك.  
=== منح المستخدمين طريقة لطلب المساعدة ===  
=== منح المستخدمين طريقة لطلب المساعدة ===  


هناك الكثير من الطرق لفعل هذا. ولكن تُعد القوائم المنسدلة إحدى أبسط الطرق للقيام بذلك.  
هناك الكثير من الطرق لفعل هذا. وتُعد القوائم المنسدلة من أبسطها.  
<syntaxhighlight lang="html"><select id="help-select">
<syntaxhighlight lang="html"><select id="help-select">
     <option value="default">Need help?</option>
     <option value="default">Need help?</option>
سطر 332: سطر 336:
=== تحميل صفحة المساعدة ===  
=== تحميل صفحة المساعدة ===  


سنستخدم الدالة <code>open</code> لتحميل صفحة المساعدة. وسنضبط الخاصية <code>hidden</code> عند القيمة <code>yes</code>، لكي نحرص على أن يُعرض المتصفح بعد تحميل محتوى الصفحة. فبهذه الطريقة، لن يرى المستخدمون متصفحًا فارغًا أثناء انتظار ظهور المحتوى. عندما يُطلق الحدث <code>loadstop</code>، سنعرف متى تم تحميل المحتوى. سنتعامل مع هذا الحدث بعد قليل.  
سنستخدم الدالة <code>open</code> لتحميل صفحة المساعدة. وسنضبط الخاصية <code>hidden</code> عند القيمة <code>yes</code>، لكي نحرص على أن يُعرض المتصفح بعد تحميل محتوى الصفحة. فبهذه الطريقة، لن يرى المستخدمون متصفحًا فارغًا أثناء انتظار ظهور المحتوى. عندما يُطلق الحدث <code>loadstop</code>، سنعرف متى تم تحميل المحتوى (سنتعامل مع هذا الحدث بعد قليل).  
<syntaxhighlight lang="javascript">function showHelp(url) {
<syntaxhighlight lang="javascript">function showHelp(url) {
     var target = "_blank";
     var target = "_blank";
سطر 349: سطر 353:
=== عرض صفحة المساعدة ===  
=== عرض صفحة المساعدة ===  


عندما يُطلق الحدث <code>loadstopcallback</code>، نعلم أن المحتوى قد حُمِّل، وحينها يمكننا إظهار المتصفح. هذه الحيلة ستخلق انطباعًا لدى المستخدم بتُحسّن الأداء. والحقيقة هي أنه، سواء أعرضت المتصفح قبل تحميل المحتوى أم لا، فإنّ وقت التحميل لن يتغير.  
عندما يُطلق الحدث <code>loadstopcallback</code>، نعلم أن المحتوى قد حُمِّل، وحينها يمكننا إظهار المتصفح. هذه الحيلة ستخلق انطباعًا لدى المستخدم بسرعة التحميل. والحقيقة هي أنه، سواء أعرضت المتصفح قبل تحميل المحتوى أم لا، فإنّ وقت التحميل لن يتغير.  
<syntaxhighlight lang="javascript">function loadStopCallBack() {
<syntaxhighlight lang="javascript">function loadStopCallBack() {
     if (inAppBrowserRef != undefined) {
     if (inAppBrowserRef != undefined) {
سطر 363: سطر 367:
في بعض الأحيان، لا تكون الصفحة المراد تحميلها مُتاحة، أو قد يكون هناك خطأ في البرنامج النصي، أو قد لا يملك المستخدم إذن الدخول إلى موردٍ ما. التعامل مع هذه الأوضاع، وطريقة ذلك متروكة لك ولتصميمك. يمكنك ترك المتصفح يعرض رسالة خطأ، أو يمكنك عرضها بطريقة أخرى.  
في بعض الأحيان، لا تكون الصفحة المراد تحميلها مُتاحة، أو قد يكون هناك خطأ في البرنامج النصي، أو قد لا يملك المستخدم إذن الدخول إلى موردٍ ما. التعامل مع هذه الأوضاع، وطريقة ذلك متروكة لك ولتصميمك. يمكنك ترك المتصفح يعرض رسالة خطأ، أو يمكنك عرضها بطريقة أخرى.  


سنحاول إظهار الخطأ في مربعٍ يعرض رسالة. يمكننا القيام بذلك عن طريق حقن برنامج نصي يستدعي الدالة <code>alert</code>. المشكلة في هذا أنه لن يعمل على متصفحات الأجهزة التي تستخدم ويندوز، لذا سيتعين علينا التحقق من قيمة معامل دالة رد النداء <code>executeScript</code>، لمعرفة ما إذا كانت المحاولة ناجحة. إذا لم ينجح الأمر، فسنكتفي بعرض رسالة الخطأ في وسم <code><nowiki><div></nowiki></code> داخل الصفحة:
سنحاول إظهار الخطأ في مربعٍ يعرض رسالة. يمكننا القيام بذلك عن طريق حقن برنامج نصي يستدعي الدالة <code>alert</code>. المشكلة في هذا أنه لن يعمل على متصفحات ويندوز، لذا سيتعين علينا التحقق من قيمة معامل دالة رد النداء <code>executeScript</code> لمعرفة ما إذا كانت المحاولة ناجحة. إذا لم ينجح الأمر، فسنكتفي بعرض رسالة الخطأ في وسم <code><nowiki><div></nowiki></code> داخل الصفحة:
<syntaxhighlight lang="javascript">function loadErrorCallBack(params) {
<syntaxhighlight lang="javascript">function loadErrorCallBack(params) {
     $('#status-message').text("");
     $('#status-message').text("");
سطر 385: سطر 389:
iab.open('local-url.html');                  // يُحمّل في عارض كوردوفا
iab.open('local-url.html');                  // يُحمّل في عارض كوردوفا
iab.open('local-url.html', '_self');        // يُحمّل في عارض كوردوفا
iab.open('local-url.html', '_self');        // يُحمّل في عارض كوردوفا
iab.open('local-url.html', '_system');      // (iOS) خطأ أمني: متصفح النظام، ولكن لن يُحمّل العنوان  
iab.open('local-url.html', '_system');      // خطأ أمني: متصفح النظام
                                            // (iOS) ولكن لن يُحمّل العنوان  
iab.open('local-url.html', '_blank');        // InAppBrowser يُحمّل في  
iab.open('local-url.html', '_blank');        // InAppBrowser يُحمّل في  
iab.open('local-url.html', 'random_string'); // InAppBrowser يُحمّل في
iab.open('local-url.html', 'random_string'); // InAppBrowser يُحمّل في
سطر 398: سطر 403:
iab.open('http://whitelisted-url.com', 'random_string'); // InAppBrowser يُحمّل في
iab.open('http://whitelisted-url.com', 'random_string'); // InAppBrowser يُحمّل في
iab.open('http://whitelisted-url.com', 'random_string', 'location=no'); // يُحمّل في  
iab.open('http://whitelisted-url.com', 'random_string', 'location=no'); // يُحمّل في  
                                                    // دون عرض شريط التصفح InAppBrowser </syntaxhighlight>  
                                                // دون عرض شريط التصفح InAppBrowser </syntaxhighlight>  
=== العناوين غير المُدرجة في اللائحة البيضاء ===  
=== العناوين غير المُدرجة في اللائحة البيضاء ===  
<syntaxhighlight lang="javascript">var iab = cordova.InAppBrowser;
<syntaxhighlight lang="javascript">var iab = cordova.InAppBrowser;

مراجعة 16:41، 20 ديسمبر 2018

تساعد إضافة المتصفح الداخلي (cordova-plugin-inappbrowser) على عرض المقالات ومقاطع الفيديو وموارد الويب المفيدة داخل تطبيقك. كما تمُكن المستخدمين من الاطلاع على صفحات الويب دون مغادرة التطبيق.

لمعرفة كيفية استخدام هذه الإضافة، اطلع على المثال التوضيحي في أسفل هذه الصفحة.

توفر هذه الإضافة مُتصفحا يمكن عرضه عند استدعاء التابع cordova.InAppBrowser.open()‎.

var ref = cordova.InAppBrowser.open('http://apache.org', '_blank', 'location=yes');

لقد تم تعريف التابعcordova.InAppBrowser.open()‎ ليكون بديلًا للدالة window.open()‎. يمكن لاستدعاءات الدالة window.open() ‎الحالية أن تسنخدم نافذةَ InAppBrowser، عن طريق استبدال window.open، كما هو موضح في المثال التالي:

window.open = cordova.InAppBrowser.open;

تتصرف النافذة InAppBrowser كمتصفح عادي، ولا يمكنها الوصول إلى الواجهات البرمجية لكوردوفا. لهذا السبب، يُنصح باستخدام InAppBrowser إذا احتجت إلى تحميل محتوى خارجي (غير موثوق به)، بدلاً من تحميله في عارض كوردوفا الرئيسي. InAppBrowser ليس معنيًا باللوائح البيضاء، ولا يفتح روابط في متصفح النظام.

يوفر InAppBrowser بشكل افتراضي عناصر الواجهة الرسومية (GUI) للمستخدم (back, forward, done).

للتوافق مع الإصدارات القديمة، تَنشُبُ (hooks) هذه الإضافةُ الدالةَ window.open مع خُطّاف. لكن يمكن أن يكون للخُطّاف الذي نُشِبت فيه الدالةُ window.open تأثيرات جانبية غير مقصودة (خاصة إذا تم تضمين هذه الإضافة كارتباط لإضافة أخرى). سيُزال خطاف window.open في إصدار رئيسي مستقبلًا. إلى حين إزالة ذلك الخطاف من الإضافة، يمكن للتطبيقات استعادة السلوك الافتراضي يدويًا:

delete window.open // إعادة رد النداء إلى وضعه الافتراضي

على الرغم من أن window.open موجودٌ في النطاق العام، إلا أنّ الكائن InAppBrowser لن يكون متوفرًا إلا بعد إطلاق الحدث deviceready.

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    console.log("window.open works well");
}

التثبيت

يمكنك تثبيت هذه الإضافة عبر الأمر التالي:

cordova plugin add cordova-plugin-inappbrowser‎

ان كنت تريد أن تُعرض جميع الصفحات المُحملة في تطبيقك في نافذة InAppBrowser، يمكنك ببساطة أن تنشُب window.open أثناء التهيئة. مثلًا:

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    window.open = cordova.InAppBrowser.open;
}

cordova.InAppBrowser.open

يفتح هذا التابع عنوانًا في نسخة جديدة (instance) من InAppBrowser، أو في نسخة من المتصفح الحالي، أو متصفح النظام.

var ref = cordova.InAppBrowser.open(url, target, options);

يشير المتغير ref إلى النافذة InAppBrowser عندما يُضبط المعامل target عند القيمة '‎_blank'. ‏(InAppBrowser)

المعاملات

url

العنوان المراد تحميله (سلسلة نصية). مرّر هذا المعامل إلى الدالةَ encodeURI()‎ إن كان العنوان يحتوي على أحرف اليونيكود.

target

يحدد المكان الذي سيُحمّل فيه العنوان، وهو معامل اختياري، قيمته الافتراضية تساوي ‎_self. (سلسلة نصية)

  • _self: يُفتح في عارض كوردوفا إن كان العنوان مُدرجًا في اللائحة البيضاء، وإلا فسيُفتح في نافذة InAppBrowser.
  • _blank: يُفتح في InAppBrowser.
  • _system: يفتح في متصفح النظام.

options

خيارات النافذة InAppBrowser. وهو معامل اختياري، وقيمته الافتراضية هيlocation=yes.(سلسلة نصية). يجب ألا تحتوي السلسلة النصية options على أية مسافة فارغة، ويجب أن تُفصل أزواج الميزات name/value بفاصلة. كما أنّ أسماء الميزات غير حساسة لحالة الأحرف.

جميع المنصات تدعم الخيار التالي:

  • location: اضبط هذه الخاصية عند القيمة yes أو no لإظهار شريط التصفح (location bar) في InAppBrowser أو إخفائه.

يدعم أندرويد هذه الخيارات الإضافية:

  • hidden: اضبط هذا الخيار عند القيمة yes لإنشاء المتصفح وتحميل الصفحة بدون إظهاره. يُطلق الحدث loadstop عند اكتمال التحميل. احذف هذا الخيار أو اضبطه عند القيمة no (القيمة الافتراضية) لفتح المتصفح وتحميل الصفحة بشكل طبيعي.
  • clearcache: اضبط هذا الخيار عند القيمة yes لمحو ذاكرة التخزين المؤقت لملفات تعريف الارتباط (cookie cache) في المتصفح قبل فتح النافذة الجديدة
  • clearsessioncache: اضبط هذا الخيار عند القيمة yes لمحو ذاكرة التخزين المؤقت لملفات تعريف الارتباط قبل فتح النافذة الجديدة
  • closebuttoncaption: اعط لهذا الخيار سلسلةً نصيةً لاستخدامها كتسميةٍ للزر بدلًا من الحرف X. تذكّر أنه سيكون عليك مراعاة الإعدادات اللغوية المحلية بنفسك.
  • closebuttoncolor: اعط لهذا الخيار سلسلةً نصية تمثل قيمة لونية سداسعشرية (hex color) صالحة، مثل: ‎#00ff00، لأجل تغيير لون زر الإغلاق الافتراضي، سواءً كان نصًا، أو كان يساوي القيمة الافتراضية X. لا يكون لهذا الخيار تأثير إلا إن كان المستخدم قد عيّن الخيار location إلى القيمة yes.
  • footer: اضبط هذا الخيار عند القيمة yes لإظهار زر الإغلاق في أسفل النافذة بشكل مماثلٍ للزر Done في منصة iOS. سيظهر زر الإغلاق بشكل مماثلٍ لترويسة (header) النافذة، لذلك استخدم closebuttoncaption و closebuttoncolor لتعيين خصائصه.
  • footercolor: اعط لهذا الخيار سلسلة نصية تمثل لونًا سداسعشريًا (hex color) صالحًا، مثل ‎#00ff00 أو ‎#CC00ff00 (#aarrggbb)‎، لتغيير لون تذييل (footer) النافذة الافتراضي. ليس لهذا الخيار تأثيرٌ إلا إن عيّن المُستخدم الخيارَ footer إلى القيمة yes.
  • hardwareback: اضبط هذا الخيار عند القيمة yes لاستخدام زر الرجوع الخاص بالجهاز للرجوع للخلف إلى الصفحات الموجودة في تاريخ نافذة InAppBrowser (الصفحات التي زرتها من قبل). إذا لم تكن هناك صفحات سابقة، فسيتم إغلاق InAppBrowser. القيمة الافتراضية هي yes، إن كنت تريد أن تجعل زر الرجوع يغلق نافذة InAppBrowser ، فعيّن هذا الخيار إلى القيمة no .
  • hidenavigationbuttons: اضبط هذا الخيار عند القيمة yes لإخفاء أزرار التصفح (navigation buttons) على شريط التصفح (location toolbar)، ليس لهذا الخيار تأثير إلا إن كان المستخدم قد عيّن الخيار location عند القيمة yes. القيمة الافتراضية هي no.
  • hideurlbar: اضبط هذا الخيار عند القيمة yes لإخفاء شريط العنوان من شريط التصفح، ليس لهذا الخيار تأثير إلا إن كان المستخدم قد عيّن الخيار location عند القيمة yes. القيمة الافتراضية هي no.
  • navigationbuttoncolor: اعط لهذا الخيار سلسلة نصية تمثل لونًا سداسعشريًا (hex color) صالحًا، مثل: ‎#00ff00، لتغيير لون أزرار التصفح الافتراضي. ليس لهذا الخيار تأثير إلا إن كان المستخدم قد عيّن الخيار location عند القيمة yes، وكانت قيمة الخيار hidenavigationbuttons تخالف yes.
  • toolbarcolor: اعط لهذا الخيار سلسلة نصية تمثل لونًا سداسعشريًا صالحًا، مثل: ‎#00ff00، لتغيير لون شريط الأدوات الافتراضي. ليس لهذا الخيار تأثير إلا إن كان المستخدم قد عيّن الخيار location عند القيمة yes.
  • zoom: اضبط هذا الخيار عند القيمة yes لعرض عناصر التحكم في الحجم في متصفح أندرويد، أو اضبطه عند القيمة no إن أردت إخفاءها. القيمة الافتراضية هي yes.
  • mediaPlaybackRequiresUserAction: اضبط هذا الخيار عند القيمة yes لمنع صوتيات أو فيديوها HTML5 من التشغيل التلقائي (القيمة الافتراضية هي no).
  • shouldPauseOnSuspend: اضبط هذا الخيار عند القيمة yes لإيقاف عارض InAppBrowser أو استئنافه مع التطبيق، وذلك لإيقاف صوت الخلفية (قد يكون هذا ضروريًا لتجنب المشكلات التي تخص Google Play كما هو موضح في الصفحة CB-11013).
  • useWideViewPort: يحدد هذا الخيار ما إذا كان العارض سيدعم وسم HTML الوصفي "viewport"، أو أنّ عليه أن يستخدم إطار عرضٍ (viewport) واسعٍ. عندما يُعطى هذا الخيار القيمة no، سيُعيّن عرض المخطط (layout) إلى قيمة العرض width في العارض محسوبةً بوحدات بكسل مستقلة عن الجهاز المُستخدم (CSS). إما إن أُعطي هذا الخيار القيمة yes، وكانت الصفحة تحتوي الوسم الوصفي viewport، فستُستخدم قيمة العرض المحددة في الوسم. إن لم تحتوِ الصفحة على الوسم، أو لم تحدد قيمةً للعرض، فسيُستخدم إطار عرضٍ واسعٍ. (القيمة الافتراضية هي yes).

تدعم منصة iOS الخيارات الإضافية التالية:

  • hidden: اضبط هذا الخيار عند القيمة yes لإنشاء المتصفح وتحميل الصفحة، ولكن دون إظهاره. سيُطلق الحدث loadstop عند اكتمال التحميل. احذف هذا الخيار أو اضبطه عند القيمة no (الافتراضية) لفتح المتصفح وتحميله بشكل طبيعي.
  • clearcache: اضبط هذا الخيار عند القيمة yes لمحو ذاكرة التخزين المؤقت لملفات تعريف الارتباط (cookie cache) للمتصفح قبل فتح النافذة الجديدة
  • clearsessioncache: اضبط هذا الخيار عند القيمة yes لمحو ذاكرة التخزين المؤقت لملفات تعريف الارتباط قبل فتح النافذة الجديدة
  • closebuttoncolor: اعط لهذا الخيار سلسلةً نصيةً تمثل لونًا سداسعشريًا (hex color) صالحًا، مثل: ‎#00ff00، لتغيير لون الزر Done الافتراضي. لا يُطبق هذا الإعداد إلا عند تفعيل شريط الأدوات.
  • closebuttoncaption: اعط لهذا الخيار سلسلةً نصيةً لاستخدامها كتسميةِ للزر Done. تذكر أن عليك مراعاة الإعدادات اللغوية المحلية بنفسك.
  • disallowoverscroll: يُضبط هذا الخيار عند القيمة yes أو no (الإعداد الافتراضي هو no). لتشغيل أو إيقاف الخاصية UIWebViewBounce.
  • hidenavigationbuttons: اضبط هذا الخيار عند القيمة yes أو no لإظهار أزرار التصفح (navigation buttons) في شريط الأدوات أو إخفائها (الإعداد الافتراضي هو no). لا يُطبّق هذا الخيار إلا عند تفعيل شريط الأدوات.
  • navigationbuttoncolor: اعط لهذا الخيار سلسلةًً نصيةًً تمثل لونًا سداسعشريًا (hex color) صالحًا، مثل: ‎#00ff00، لتغيير اللون الافتراضي. لا يُطبّق هذا الخيار إلا عند إظهار أزرار التصفح.
  • toolbar: اعط لهذا الخيار القيمة yes أو no لإظهار شريط الأدوات أو إخفائه في نافذة InAppBrowser (الإعداد الافتراضي هو yes)
  • toolbarcolor: اعط لهذا الخيار سلسلةً نصيةً تمثل لونًا سداسعشريًا (hex color) صالحًا، مثل: ‎#00ff00، لتغيير اللون الافتراضي لشريط الأدوات. لا يُطبّق هذا الخيار إلا عند تفعيل شريط الأدوات.
  • toolbartranslucent: اعط لهذا الخيار القيمة yes أو no لجعل شريط الأدوات شبه شفاف (translucent) (القيمة الافتراضية هي yes). لا يُطبّق هذا الخيار إلا عند تفعيل شريط الأدوات.
  • enableViewportScale: اضبط هذا الخيار عند القيمة yes أو no لمنع تعديل حجم إطار العرض (viewport) عبر الوسم الوصفي (القيمة الافتراضية هي no).
  • mediaPlaybackRequiresUserAction: اضبط هذا الخيار عند القيمة yes لمنع صوتيات أو فيديوهات HTML5 من التشغيل التلقائي (القيمة الافتراضية هي no).
  • allowInlineMediaPlayback: اضبط هذا الخيار عند القيمة yes أو no للسماح بتشغيل وسائط HTML5 المُدرجة على السطر (in-line)، وعرضها في نافذة المتصفح بدلاً من واجهة تشغيلٍ خاصةٍ بالجهاز. يجب أن يشتمل عنصر video في HTML على الخاصية webkit-playsinline (القيمة الافتراضية هي no)
  • keyboardDisplayRequiresUserAction: اضبط هذا الخيار عند القيمة yes أو no لفتح لوحة المفاتيح عندما تتلقى عناصر النموذج (form) التركيز (focus) عبر استدعاء دالة جافاسكريبت focus()‎ (القيمة الافتراضية هي yes).
  • suppressesIncrementalRendering: اضبط هذا الخيار عند القيمة yes أو no للانتظار حتى يتم استلام كل محتوى إطار العرض الجديد قبل عرضه (القيمة الافتراضية هي no).
  • presentationstyle: اعط لهذا الخيار القيمة pagesheet أو formsheet أو fullscreen لتعيين نمط التقديم (القيمة الافتراضية هي fullscreen).
  • transitionstyle: اعط لهذا الخيار القيمة fliphorizontal أو crossdissolve أو coververtical لتعيين نمط الانتقال (القيمة الافتراضية هي coververtical).
  • toolbarposition: اضبط هذا الخيار عند القيمة top أو bottom (الإعداد الافتراضي هو bottom). لجعل شريط الأدوات في أعلى النافذة أو أسفلها.
  • hidespinner: اضبط هذا الخيار عند القيمة yes أو no لتغيير منظورية (visibility) مؤشر التحميل (القيمة الافتراضية هي no).

تدعم منصة ويندوز الخيارات الإضافية التالية:

  • hidden: اضبط هذا الخيار عند القيمة yes لإنشاء المتصفح وتحميل الصفحة دون إظهاره. يُطلق الحدث loadstop عند اكتمال التحميل. احذف هذا الخيار أو اضبطه عند القيمة no (الافتراضية) لفتح المتصفح وتحميله بشكل طبيعي.
  • hardwareback: يعمل هذا الخيار بطريقة مشابهة لعمله على منصة أندرويد.
  • fullscreen: اضبط هذا الخيار عند القيمة yes لإنشاء متصفحٍ وعرضه بدون إحاطته بحدود. يرجى ملاحظة أنه إذا تم تحديد الخيار location=no أيضًا، فلن يُقدّم للمستخدم أي مُركّبةٍ (control) لإغلاق النافذة IAB.

المنصات المدعومة

  • أندرويد
  • Browser
  • iOS
  • OSX
  • ويندوز

مثال

var ref = cordova.InAppBrowser.open('http://apache.org', '_blank', 'location=yes');
var ref2 = cordova.InAppBrowser.open(encodeURI('http://ja.m.wikipedia.org/wiki/ハングル'), '_blank', 'location=yes');

ملاحظات خاصة بمنصة OSX

في الوقت الحالي، القيمة الوحيدة المدعومة للمعامل target في منصة OSX هي ‎_system.

لم يتم بعدُ تقديم الهدفين ‎_blank و ‎_self، وسيُتجاهلان بصمت.

ملاحظات خاصة بالمتصفحات (Browsers)

  • تُقدم هذه الإضافة عبر الإطار الذكي iframe،
  • لم يتم تقديم تاريخ التصفح (Navigation history) بعدُ (أي الزِّرين back و forward في شريط التصفح LocationBar).

InAppBrowser

يمثل InAppBrowser الكائن المُعاد من استدعاء التابع cordova.InAppBrowser.open عند تعيين المعامل target إلى القيمة '‎_blank'.

التوابع

  • addEventListener
  • removeEventListener
  • close
  • show
  • hide
  • executeScript
  • insertCSS

InAppBrowser.addEventListener

يضيف هذا التابع مُنصتًا (listener) لحدثٍ من InAppBrowser. (متاح فقط عند ضبط الخيار target عند القيمة '‎_blank')

ref.addEventListener(eventname, callback);

يشير المتغير ref إلى نافذة InAppBrowser ‏(‎InAppBrowser).

المعاملات

  • eventname: الحدث المُراد الإنصات إليه (سلسلة نصية)
  • loadstart: يُطلق هذا الحدث عندما يبدأ InAppBrowser في تحميل عنوان URL.
  • loadstop: يُطلق هذا الحدث عند انتهاء InAppBrowser من تحميل عنوان URL.
  • loaderror: يُطلق هذا الحدث عندما يواجه InAppBrowser خطأً أثناء تحميل عنوان URL.
  • exit: يُطلق هذا الحدث عند إغلاق نافذة InAppBrowser.
  • callback: الدالة التي ستنفذ عند إطلاق الحدث. يُمرّر إليها الكائن InAppBrowserEvent كمعاملٍ.

مثال

var inAppBrowserRef;
function showHelp(url) {
    var target = "_blank";
    var options = "location=yes,hidden=yes";
    inAppBrowserRef = cordova.InAppBrowser.open(url, target, options);
    inAppBrowserRef.addEventListener('loadstart', loadStartCallBack);
    inAppBrowserRef.addEventListener('loadstop', loadStopCallBack);
    inAppBrowserRef.addEventListener('loaderror', loadErrorCallBack);
}
function loadStartCallBack() {
    $('#status-message').text("loading please wait ...");
}
function loadStopCallBack() {
    if (inAppBrowserRef != undefined) {
        inAppBrowserRef.insertCSS({ code: "body{font-size: 25px;" });
        $('#status-message').text("");
        inAppBrowserRef.show();
    }
}
function loadErrorCallBack(params) {
    $('#status-message').text("");
    var scriptErrorMesssage =
       "alert('Sorry we cannot open that page. Message from the server is : "
       + params.message + "');"
    inAppBrowserRef.executeScript({ code: scriptErrorMesssage }, executeScriptCallBack);
    inAppBrowserRef.close();
    inAppBrowserRef = undefined;
}
function executeScriptCallBack(params) {
    if (params[0] == null) {
        $('#status-message').text(
           "Sorry we couldn't open that page. Message from the server is : '"
           + params.message + "'");
    }
}

خاصيات الكائن InAppBrowserEvent

  • type: اسم الحدث، والذي يساوي إمّا loadstart أو loadstop أو loaderror أو exit. (سلسلة نصية)
  • url: العنوان الذي تم تحميله. (سلسلة نصية)
  • code: رمز الخطأ، لا تكون هذه الخاصية مُتاحةً إلا في حال إطلاق الحدث loaderror. (عدد)
  • message: رسالة الخطأ، لا تكون هذه الخاصية مُتاحةً إلا في حال إطلاق الحدث loaderror. (سلسلة نصية)

المنصات المدعومة

  • أندرويد
  • Browser
  • iOS
  • ويندوز
  • OSX

ملاحظات خاصة بالمتصفحات (Browsers)

في هذه المنصات، لا يُطلق الحدثان loadstart و loaderror.

مثال سريع

var ref = cordova.InAppBrowser.open('http://apache.org', '_blank', 'location=yes');
ref.addEventListener('loadstart', function(event) { alert(event.url); });

InAppBrowser.removeEventListener

يزيل هذا التابع مُنصِتا لحدثٍ من أحداث InAppBrowser. (متاح فقط عند ضبط الخيار target عند القيمة '‎_blank')

ref.removeEventListener(eventname, callback);

يشير المتغير ref إلى النافذة InAppBrowser.

المعاملات

  • eventname: يمثل هذا المعاملُ الحدثَ المُراد التوقف عن الإنصات له. (سلسلة نصية)
    • loadstart: يُطلق هذا الحدث عندما يبدأ InAppBrowser في تحميل عنوان URL.
    • loadstop: يُطلق هذا الحدث عند انتهاء InAppBrowser من تحميل عنوان URL.
    • loaderror: يُطلق هذا الحدث عندما يواجه InAppBrowser خطأ أثناء تحميل عنوان URL.
    • exit: يُطلق هذا الحدث عند إغلاق نافذةِ InAppBrowser.
  • callback: يمثل هذا المعامل الدالة التي سيتم تنفيذها عند إطلاق الحدث. والتي سيُمرّر إليها الكائنٌ InAppBrowserEvent.

المنصات المدعومة

  • أندرويد
  • Browser
  • iOS
  • ويندوز

مثال سريع

var ref = cordova.InAppBrowser.open('http://apache.org', '_blank', 'location=yes');
var myCallback = function(event) { alert(event.url); }
ref.addEventListener('loadstart', myCallback);
ref.removeEventListener('loadstart', myCallback);

InAppBrowser.close

يغلق هذا التابع نافذة InAppBrowser.

ref.close();

المتغير ref يُشير إلى نافذة InAppBrowser ‏(InAppBrowser)

المنصات المدعومة

  • أندرويد
  • Browser
  • iOS
  • ويندوز

مثال سريع

var ref = cordova.InAppBrowser.open('http://apache.org', '_blank', 'location=yes');
ref.close();

InAppBrowser.show

يُظهر هذا التابع نافذةً InAppBrowser فُتِحت وهي مخفية. استدعاء هذا التابع لن يكون له أي تأثير إن كانت نافذة InAppBrowser مرئيًةً.

ref.show();

المتغير ref يُشير إلى نافذة InAppBrowser ‏(InAppBrowser)

المنصات المدعومة

  • أندرويد
  • Browser
  • iOS
  • ويندوز

مثال سريع

var ref = cordova.InAppBrowser.open('http://apache.org', '_blank', 'hidden=yes');
// ...بعد برهة
ref.show();

InAppBrowser.hide

يُخفي هذا التابع نافذة InAppBrowser. استدعاء هذا التابع ليس له أي تأثير إن كانت نافذة InAppBrowser مخفيًةً مسبقاً.

ref.hide();

المتغير ref يُشير إلى نافذة InAppBrowser ‏(InAppBrowser)

المنصات المدعومة

  • أندرويد
  • iOS
  • ويندوز

مثال سريع

var ref = cordova.InAppBrowser.open('http://apache.org', '_blank');
// ...بعد بُرهة
ref.hide();

InAppBrowser.executeScript

يحقن (Injects) هذا التابع شيفرة جافاسكريبت في نافذة InAppBrowser. (متاح فقط عند ضبط الخيار target عند القيمة '‎_blank')

ref.executeScript(details, callback);

يشير المتغير refإلى نافذة InAppBrowser.‏ (InAppBrowser)

المعاملات

  • injectDetails: يمثل هذا المعامل تفاصيل البرنامج النصي المراد تنفيذه، مع تحديد أحد المفتاحين file أو code. (كائن)
    • file: عنوان النص المراد حقنُه.
    • code: نص الشيفرة البرمجية المراد حقنُها.
  • callback: الدالة التي سُتنفّذ بعد حقن شيفرة جافاسكريبت.
    • إن كان البرنامج النصي المحقون من النوع code، فسُينفّذ رد النداء (callback) مع إعطائه معاملًا واحدًا، والذي يساوي القيمة التي يُعيدها البرنامج النصي مُغلّفةً في مصفوفةٍ (Array). بالنسبة للنصوص النصية متعددة الأسطر، فالقيمة ستساوي قيمة آخر تعليمة (statement)، أو آخر تعبير (expression) مُقيّمٍ.

المنصات المدعومة

  • أندرويد
  • Browser
  • iOS
  • ويندوز

مثال سريع

var ref = cordova.InAppBrowser.open('http://apache.org', '_blank', 'location=yes');
ref.addEventListener('loadstop', function() {
    ref.executeScript({file: "myscript.js"});
});

ملاحظات خاصة بالمتصفحات (Browsers)

  • لا تدعم هذه المنصة إلا المفتاح code.

ملاحظات خاصة بمنصة ويندوز

بحسَب توثيق MSDN، لا يمكن للبرنامج النصي المستدعى أن يُعيد إلا قيمًا نصيةً، وإلا فإنّ المعامل الذي سيُمرّر إلى رد النداء callback سيساوي [null].

InAppBrowser.insertCSS

يحقن هذا التابع أنماط CSS في نافذة InAppBrowser. (متاح فقط عند ضبط الخيار target عند القيمة '‎_blank')

ref.insertCSS(details, callback);

المتغير ref يُشير إلى نافذة InAppBrowser ‏(InAppBrowser)

  • injectDetails: تفاصيل البرنامج النصي المُراد تشغيله، مع تحديد أحد المفتاحين file أو code. (كائن)
    • file: عنوان ورقة الأنماط المراد حقنها.
    • code: نص ورقة الأنماط المُراد حقنها.
  • callback: الدالة التي ستُنفذ بعد حقن CSS.

المنصات المدعومة

  • أندرويد
  • iOS
  • ويندوز

مثال سريع

var ref = cordova.InAppBrowser.open('http://apache.org', '_blank', 'location=yes');
ref.addEventListener('loadstop', function() {
    ref.insertCSS({file: "mystyles.css"});
});

مثال توضيحي

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

في هذه الفقرة تجد بعض المقتطفات البرمجية التي توضح كيفية القيام بذلك.

منح المستخدمين طريقة لطلب المساعدة

هناك الكثير من الطرق لفعل هذا. وتُعد القوائم المنسدلة من أبسطها.

<select id="help-select">
    <option value="default">Need help?</option>
    <option value="article">Show me a helpful article</option>
    <option value="video">Show me a helpful video</option>
    <option value="search">Search for other topics</option>
</select>

قم بتجميع اختيارات المستخدمين في دالة الصفحة onDeviceReady، ثم أرسل عنوانًا (URL) مناسبًا لدالة المساعدة (helper function) في أحد ملفات المكتبة المشتركة. اسم دالة المساعدة في هذا المثال هو showHelp()‎، والتي سنعرّفها في الفقرة الموالية.

$('#help-select').on('change', function (e) {
    var url;
    switch (this.value) {
        case "article":
            url = "https://cordova.apache.org/docs/en/latest/"
                        + "reference/cordova-plugin-inappbrowser/index.html";
            break;
        case "video":
            url = "https://youtu.be/F-GlVrTaeH0";
            break;
        case "search":
            url = "https://www.google.com/#q=inAppBrowser+plugin";
            break;
    }
    showHelp(url);
});

تحميل صفحة المساعدة

سنستخدم الدالة open لتحميل صفحة المساعدة. وسنضبط الخاصية hidden عند القيمة yes، لكي نحرص على أن يُعرض المتصفح بعد تحميل محتوى الصفحة. فبهذه الطريقة، لن يرى المستخدمون متصفحًا فارغًا أثناء انتظار ظهور المحتوى. عندما يُطلق الحدث loadstop، سنعرف متى تم تحميل المحتوى (سنتعامل مع هذا الحدث بعد قليل).

function showHelp(url) {
    var target = "_blank";
    var options = "location=yes,hidden=yes";
    inAppBrowserRef = cordova.InAppBrowser.open(url, target, options);
    inAppBrowserRef.addEventListener('loadstart', loadStartCallBack);
    inAppBrowserRef.addEventListener('loadstop', loadStopCallBack);
    inAppBrowserRef.addEventListener('loaderror', loadErrorCallBack);
}

إعلام المستخدمين بجاهزية صفحتهم

لا يظهر المتصفح على الفور، لذلك سنستخدم الحدث loadstart لعرض رسالة الحالة (status message)، أو شريط التقدم (progress bar)، أو أي مؤشرٍ آخر. هذا يؤكد للمستخدمين أن المحتوى في خضمِّ التحميل.

function loadStartCallBack() {
    $('#status-message').text("loading please wait ...");
}

عرض صفحة المساعدة

عندما يُطلق الحدث loadstopcallback، نعلم أن المحتوى قد حُمِّل، وحينها يمكننا إظهار المتصفح. هذه الحيلة ستخلق انطباعًا لدى المستخدم بسرعة التحميل. والحقيقة هي أنه، سواء أعرضت المتصفح قبل تحميل المحتوى أم لا، فإنّ وقت التحميل لن يتغير.

function loadStopCallBack() {
    if (inAppBrowserRef != undefined) {
        inAppBrowserRef.insertCSS({ code: "body{font-size: 25px;" });
        $('#status-message').text("");
        inAppBrowserRef.show();
    }
}

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

معالجة أخطاء الصفحة

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

سنحاول إظهار الخطأ في مربعٍ يعرض رسالة. يمكننا القيام بذلك عن طريق حقن برنامج نصي يستدعي الدالة alert. المشكلة في هذا أنه لن يعمل على متصفحات ويندوز، لذا سيتعين علينا التحقق من قيمة معامل دالة رد النداء executeScript لمعرفة ما إذا كانت المحاولة ناجحة. إذا لم ينجح الأمر، فسنكتفي بعرض رسالة الخطأ في وسم <div> داخل الصفحة:

function loadErrorCallBack(params) {
    $('#status-message').text("");
    var scriptErrorMesssage =
       "alert('Sorry we cannot open that page. Message from the server is : "
       + params.message + "');"
    inAppBrowserRef.executeScript({ code: scriptErrorMesssage }, executeScriptCallBack);
    inAppBrowserRef.close();
    inAppBrowserRef = undefined;
}
function executeScriptCallBack(params) {
    if (params[0] == null) {
        $('#status-message').text(
           "Sorry we couldn't open that page. Message from the server is : '"
           + params.message + "'");
    }
}

معلومات استخدام إضافية

العناوين المحلية (المصدر في حزمة التطبيق)

var iab = cordova.InAppBrowser;
iab.open('local-url.html');                  // يُحمّل في عارض كوردوفا
iab.open('local-url.html', '_self');         // يُحمّل في عارض كوردوفا
iab.open('local-url.html', '_system');       // خطأ أمني: متصفح النظام 
                                             // (iOS) ولكن لن يُحمّل العنوان 
iab.open('local-url.html', '_blank');        // InAppBrowser يُحمّل في 
iab.open('local-url.html', 'random_string'); // InAppBrowser يُحمّل في
iab.open('local-url.html', 'random_string', 'location=no'); //  InAppBrowser يُحمّل في
                                                            // دون عرض شريط التصفح

محتوى مُدرج في اللائحة البيضاء

var iab = cordova.InAppBrowser;
iab.open('http://whitelisted-url.com');                  // يُحمّل في عارض كوردوفا
iab.open('http://whitelisted-url.com', '_self');         // يُحمّل في عارض كوردوفا
iab.open('http://whitelisted-url.com', '_system');       // يُحمّل في متصفح النظام
iab.open('http://whitelisted-url.com', '_blank');        // InAppBrowser يُحمّل في
iab.open('http://whitelisted-url.com', 'random_string'); // InAppBrowser يُحمّل في
iab.open('http://whitelisted-url.com', 'random_string', 'location=no'); // يُحمّل في 
                                                 // دون عرض شريط التصفح InAppBrowser

العناوين غير المُدرجة في اللائحة البيضاء

var iab = cordova.InAppBrowser;
iab.open('http://url-that-fails-whitelist.com');              // InAppBrowser يُحمّل في
iab.open('http://url-that-fails-whitelist.com', '_self');      //InAppBrowser يُحمّل في 
iab.open('http://url-that-fails-whitelist.com', '_system');  // يُحمل في متصفح النظام
iab.open('http://url-that-fails-whitelist.com', '_blank');   // InAppBrowser يُحمّل في
iab.open('http://url-that-fails-whitelist.com', 'random_string'); // InAppBrowser يُحمّل في
iab.open('http://url-that-fails-whitelist.com', 'random_string', 'location=no'); 
// دون عرض شريط التصفح InAppBrowser يُحمّل في

انظر أيضا

مصادر