يمكن للنصوص البرمجية المرتبطة بـ "مستندات Google" أو "جداول بيانات Google" أو "نماذج Google" عرض عدة أنواع من عناصر واجهة المستخدم، مثل التنبيهات والطلبات المُنشأة مسبقًا، بالإضافة إلى مربّعات الحوار والأشرطة الجانبية التي تحتوي على صفحات خدمة HTML مخصّصة. عادةً ما يتم فتح هذه العناصر من عناصر القائمة. (لاحظ أنه في نماذج Google، لا تكون عناصر واجهة المستخدم مرئية إلا للمحرر الذي يفتح النموذج لتعديله، وليس للمستخدم الذي يفتح النموذج للرد.)
مربّعات حوار التنبيهات
التنبيه هو مربّع حوار تم إنشاؤه مسبقًا يفتح داخل أحد برامج تحرير "مستندات Google" أو "جداول بيانات Google"
أو "العروض التقديمية من Google" أو "نماذج Google". يعرض رسالة وزر "حسنًا"؛ حيث يكون العنوان
والأزرار البديلة اختياريًا. وهي تشبه استدعاء
window.alert()
في JavaScript من جهة العميل في متصفح الويب.
تعلّق التنبيهات النص البرمجي من جانب الخادم أثناء فتح مربع الحوار. يتم استئناف النص البرمجي بعد أن يغلق المستخدم مربّع الحوار، ولكن لا تستمر اتصالات JDBC خلال فترة التعليق.
كما هو موضّح في المثال أدناه، تستخدم جميع "مستندات Google" و"نماذج Google" و"العروض التقديمية من Google"
و"جداول بيانات Google" الطريقة Ui.alert()
، المتاحة بثلاث صيغ. لإلغاء الزر "حسنًا" التلقائي، مرِّر قيمة من التعداد Ui.ButtonSet
كوسيطة buttons
. لتقييم الزر الذي نقر عليه المستخدم، قارِن القيمة المعروضة للسمة alert()
بالتعداد Ui.Button
.
function onOpen() {
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.createMenu('Custom Menu')
.addItem('Show alert', 'showAlert')
.addToUi();
}
function showAlert() {
var ui = SpreadsheetApp.getUi(); // Same variations.
var result = ui.alert(
'Please confirm',
'Are you sure you want to continue?',
ui.ButtonSet.YES_NO);
// Process the user's response.
if (result == ui.Button.YES) {
// User clicked "Yes".
ui.alert('Confirmation received.');
} else {
// User clicked "No" or X in the title bar.
ui.alert('Permission denied.');
}
}
مربّعات حوار الطلبات
الطلب هو مربّع حوار تم إنشاؤه مسبقًا يفتح داخل أحد برامج تحرير "مستندات Google" أو "جداول بيانات Google"
أو "العروض التقديمية من Google" أو "نماذج Google". ويعرض رسالة وحقل إدخال نص وزر "حسنًا"،
ويظهر العنوان والأزرار البديلة بشكل اختياري. وهي تشبه استدعاء
window.prompt()
في JavaScript من جهة العميل في متصفح الويب.
تعمل الطلبات على تعليق النص البرمجي من جهة الخادم عندما يكون مربّع الحوار مفتوحًا. يتم استئناف النص البرمجي بعد أن يغلق المستخدم مربّع الحوار، ولكن لا تستمر اتصالات JDBC خلال فترة التعليق.
كما هو موضح في المثال أدناه، تستخدم جميع تنسيقات "مستندات Google" و"نماذج Google" و"العروض التقديمية من Google" و"جداول بيانات Google" الطريقة Ui.prompt()
،
المتوفرة بثلاث صيغ. لإلغاء الزر "حسنًا" التلقائي،
مرِّر قيمة من التعداد Ui.ButtonSet
كوسيطة buttons
. لتقييم ردّ المستخدم، حدِّد القيمة المعروضة لـ prompt()
، ثم استدعِ PromptResponse.getResponseText()
لاسترداد البيانات التي أدخلها المستخدم، وقارِن القيمة التي يعرضها المستخدم PromptResponse.getSelectedButton()
بالتعداد Ui.Button
.
function onOpen() {
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.createMenu('Custom Menu')
.addItem('Show prompt', 'showPrompt')
.addToUi();
}
function showPrompt() {
var ui = SpreadsheetApp.getUi(); // Same variations.
var result = ui.prompt(
'Let\'s get to know each other!',
'Please enter your name:',
ui.ButtonSet.OK_CANCEL);
// Process the user's response.
var button = result.getSelectedButton();
var text = result.getResponseText();
if (button == ui.Button.OK) {
// User clicked "OK".
ui.alert('Your name is ' + text + '.');
} else if (button == ui.Button.CANCEL) {
// User clicked "Cancel".
ui.alert('I didn\'t get your name.');
} else if (button == ui.Button.CLOSE) {
// User clicked X in the title bar.
ui.alert('You closed the dialog.');
}
}
مربّعات حوار مخصّصة
يمكن لمربع حوار مخصص عرض واجهة مستخدم خدمة HTML داخل أحد مستندات Google أو جداول البيانات أو العروض التقديمية أو محرر النماذج.
لا تعلّق مربّعات الحوار المخصَّصة النص البرمجي من جهة الخادم عندما يكون مربّع الحوار مفتوحًا.
يمكن للمكوِّن من جهة العميل إجراء طلبات غير متزامنة على النص البرمجي من جهة الخادم
باستخدام واجهة برمجة تطبيقات google.script
لواجهات خدمة HTML.
يمكن أن يغلق مربّع الحوار نفسه عن طريق استدعاء
google.script.host.close()
في جانب العميل لواجهة خدمة HTML. ولا يمكن إغلاق مربّع الحوار بواسطة الواجهات الأخرى،
بل بواسطة المستخدم أو نفسه فقط.
كما هو موضّح في المثال أدناه، تستخدم جميع "مستندات Google" و"نماذج Google" و"العروض التقديمية من Google" و"جداول بيانات Google" الطريقة Ui.showModalDialog()
لفتح مربّع الحوار.
Code.gs
function onOpen() { SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp. .createMenu('Custom Menu') .addItem('Show dialog', 'showDialog') .addToUi(); } function showDialog() { var html = HtmlService.createHtmlOutputFromFile('Page') .setWidth(400) .setHeight(300); SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp. .showModalDialog(html, 'My custom dialog'); }
Page.html
Hello, world! <input type="button" value="Close" onclick="google.script.host.close()" />
الأشرطة الجانبية المخصّصة
يمكن أن يعرض الشريط الجانبي واجهة مستخدم خدمة HTML داخل محرِّر "مستندات Google" و"نماذج Google" و"العروض التقديمية من Google" و"جداول بيانات Google".
لا تعلّق الأشرطة الجانبية النص البرمجي من جهة الخادم عندما يكون مربّع الحوار مفتوحًا. يمكن للمكوِّن من جهة العميل إجراء طلبات غير متزامنة على النص البرمجي من جهة الخادم، وذلك باستخدام واجهة برمجة تطبيقات google.script
الخاصة بواجهات خدمة HTML.
يمكن إغلاق الشريط الجانبي تلقائيًا عن طريق استدعاء
google.script.host.close()
في جانب العميل لواجهة خدمة HTML. لا يمكن إغلاق الشريط الجانبي بواسطة واجهات أخرى،
فقط بواسطة المستخدم أو نفسه.
كما هو موضّح في المثال أدناه، تستخدم جميع "مستندات Google" و"نماذج Google" و"العروض التقديمية من Google" و"جداول بيانات Google" الطريقة Ui.showSidebar()
لفتح الشريط الجانبي.
Code.gs
function onOpen() { SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp. .createMenu('Custom Menu') .addItem('Show sidebar', 'showSidebar') .addToUi(); } function showSidebar() { var html = HtmlService.createHtmlOutputFromFile('Page') .setTitle('My custom sidebar'); SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp. .showSidebar(html); }
Page.html
Hello, world! <input type="button" value="Close" onclick="google.script.host.close()" />
مربعات حوار فتح الملف
أداة اختيار Google هو مربّع حوار "فتح الملف" للحصول على المعلومات المخزَّنة في خوادم Google، بما في ذلك Google Drive و"بحث صور Google" و"بحث الفيديو من Google" وغيرها.
كما هو موضّح في المثال أدناه، يمكن استخدام واجهة برمجة تطبيقات JavaScript من جهة العميل في المنتقي في خدمة HTML لإنشاء مربّع حوار مخصّص يتيح للمستخدمين اختيار ملفات حالية أو تحميل ملفات جديدة، ثم تمرير هذا الاختيار مرة أخرى إلى النص البرمجي لاستخدامه مجددًا.
لتفعيل "المنتقي" والحصول على مفتاح واجهة برمجة التطبيقات، اتّبِع التعليمات التالية:
- تحقَّق من أنّ مشروع النص البرمجي يستخدم مشروع Google Cloud Platform عادي.
- فعِّل "واجهة برمجة تطبيقات Google Picker" في مشروعك على Google Cloud.
- عندما لا يزال مشروعك على Google Cloud مفتوحًا، اختَر واجهات برمجة التطبيقات والخدمات، ثم انقر على بيانات الاعتماد.
- انقر على إنشاء بيانات اعتماد > مفتاح واجهة برمجة التطبيقات. يؤدي هذا الإجراء إلى إنشاء المفتاح، ولكن عليك تعديل المفتاح لإضافة كلٍّ من قيود التطبيق وتقييد واجهة برمجة التطبيقات إلى المفتاح.
- في مربّع حوار مفتاح واجهة برمجة التطبيقات، انقر على إغلاق.
- بجانب مفتاح واجهة برمجة التطبيقات الذي أنشأته، انقر على رمز المزيد
> تعديل مفتاح واجهة برمجة التطبيقات.
ضمن قيود التطبيقات، أكمِل الخطوات التالية:
- اختَر مُحيلو HTTP (المواقع الإلكترونية).
- ضمن قيود الموقع الإلكتروني، انقر على إضافة عنصر.
- انقر على المُحيل وأدخِل
*.google.com
. - أضِف عنصرًا آخر وأدخِل
*.googleusercontent.com
كمُحيل. - انقر على تم.
ضمن قيود واجهة برمجة التطبيقات، أكمِل الخطوات التالية:
- اختَر تقييد المفتاح.
في القسم اختيار واجهات برمجة التطبيقات، اختَر واجهة برمجة تطبيقات أداة اختيار Google وانقر على حسنًا.
ملاحظة: لا تظهر واجهة برمجة التطبيقات Google Picker API ما لم يتم تفعيلها، لأن القائمة تعرض فقط واجهات برمجة التطبيقات التي تم تفعيلها للمشروع على Google Cloud.
انقر على رمز النسخ إلى الحافظة
ضمن مفتاح واجهة برمجة التطبيقات.
في أسفل الشاشة، انقر على حفظ.