تثبيت تطبيقات Glance المصغّرة داخل التطبيق
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
في الإصدار 8.0 من نظام التشغيل Android (المستوى 26 من واجهة برمجة التطبيقات) والإصدارات الأحدث، يمكنك السماح للمستخدمين بتثبيت تطبيقاتك المصغّرة على الشاشة الرئيسية داخل تطبيقك. ويُعد الترويج للتطبيقات المصغّرة مباشرةً داخل تطبيقك طريقة رائعة لزيادة تفاعل المستخدمين، خاصةً بعد أن يكمل المستخدم مهمة ذات صلة، أو عندما يصل المستخدم بشكل متكرر إلى إحدى الميزات في تطبيقك.
إنشاء طلب رقم تعريف شخصي
لبدء عملية تثبيت الأداة، استخدِم الطريقة requestPinGlanceAppWidget
من الفئة GlanceAppWidgetManager
. بالنسبة إلى التطبيقات التي تعمل على إصدارات Android الأقدم من 10، تعرض هذه السمة القيمة "خطأ". ومع ذلك، إذا تم إرسال الطلب إلى النظام بنجاح، سيعرض هذا الحقل القيمة "صحيح".
في ما يلي مثال على كيفية إنشاء طلب رمز PIN:
@Composable
fun AnInAppComposable() {
val context = LocalContext.current
val coroutineScope = rememberCoroutineScope()
Button(
onClick = {
coroutineScope.launch {
GlanceAppWidgetManager(context).requestPinGlanceAppWidget(
receiver = MyWidgetReceiver::class.java,
preview = MyWidget(),
previewState = DpSize(245.dp, 115.dp)
)
}
}
) {}
}
في هذا المثال، MyWidgetReceiver
هي الفئة التي تتلقّى عمليات معاودة الاتصال الخاصة بالتطبيق المصغّر، وMyWidget
هي تطبيق Glance المصغّر الذي تريد تثبيته. successCallback
هو PendingIntent
يتم تشغيله عند تثبيت التطبيق المصغّر بنجاح.
التعامل مع الردّ على طلب رقم التعريف الشخصي
عندما يردّ المستخدم على مربّع حوار طلب رقم التعريف الشخصي، يتلقّى تطبيقك ردًا. إذا وافق المستخدم على الطلب، سيتم تثبيت الأداة على شاشته الرئيسية، وسيتم تشغيل successCallback
PendingIntent
. إذا رفض المستخدم الطلب، لن يحدث أي شيء.
يُرجى العِلم أنّه لا يتم تشغيل successCallback
إلا إذا تمت إضافة التطبيق المصغّر إلى الشاشة الرئيسية بنجاح. لا يتم تشغيلها إذا رفض المستخدم الطلب أو إذا كان مشغّل التطبيقات لا يتيح تثبيت التطبيقات.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-08-26 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-08-26 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["With Android 8.0 (API level 26) and higher, you can let users pin your\nwidgets to their home screen within your app. Promoting widgets directly within\nyour app is a great way to increase user engagement, especially after a\nuser completes a related task, or when a user repeatedly accesses a feature in\nyour app.\n\nCreate a Pin Request\n\nTo initiate widget pinning, use the [`requestPinGlanceAppWidget`](/reference/kotlin/androidx/glance/appwidget/GlanceAppWidgetManager#requestPinGlanceAppWidget(java.lang.Class,androidx.glance.appwidget.GlanceAppWidget,kotlin.Any,android.app.PendingIntent)) method\nfrom the [`GlanceAppWidgetManager`](/reference/kotlin/androidx/glance/appwidget/GlanceAppWidgetManager) class. For apps running on lower versions\nof Android, this returns false. However if the request is successfully sent\nto the system, this returns true.\n\nHere is an example of how you can create a pin request:\n\n\n```kotlin\n@Composable\nfun AnInAppComposable() {\n val context = LocalContext.current\n val coroutineScope = rememberCoroutineScope()\n Button(\n onClick = {\n coroutineScope.launch {\n GlanceAppWidgetManager(context).requestPinGlanceAppWidget(\n receiver = MyWidgetReceiver::class.java,\n preview = MyWidget(),\n previewState = DpSize(245.dp, 115.dp)\n )\n }\n }\n ) {}\n}https://github.com/android/snippets/blob/5673ffc60b614daf028ee936227128eb8c4f9781/compose/snippets/src/main/java/com/example/compose/snippets/glance/GlancePinAppWidget.kt#L44-L59\n```\n\n\u003cbr /\u003e\n\nIn this example, `MyWidgetReceiver` is the class that receives the widget's\ncallbacks, and `MyWidget` is the Glance widget you want to pin. The\n`successCallback` is a `PendingIntent` that is triggered when the widget is\nsuccessfully pinned.\n\nHandle the Pin Request Response\n\nWhen a user responds to the pin request dialog, your app receives a\nresponse. If the user accepts the request, your widget is pinned to their\nhome screen, and the `successCallback` `PendingIntent` is triggered. If the\nuser denies the request, nothing happens.\n\nIt is important to note that the `successCallback` is only triggered if the\nwidget is successfully added to the home screen. It is not triggered if the user\ndenies the request or if the launcher does not support pinning."]]