يتم تلقائيًا نقل الإشعارات أو مشاركتها من تطبيق على الهاتف إلى أي ساعات مقترنة. إذا أنشأت تطبيقًا للساعة وكان تطبيقك متاحًا أيضًا على هاتف مقترن، قد يتلقّى المستخدمون إشعارات مكرّرة، أحدها تم إنشاؤه ونقله من خلال تطبيق الهاتف، والآخر تم إنشاؤه من خلال تطبيق الساعة. يتضمّن نظام التشغيل Wear OS ميزات للتحكّم في كيفية نقل الإشعارات وموعد نقلها.
تجنُّب الإشعارات المكرّرة
عند إنشاء إشعارات من مصدر خارجي، مثل المراسلة عبر السحابة الإلكترونية من Firebase، يمكن لكل من تطبيقك على الأجهزة الجوّالة وتطبيقك على الأجهزة القابلة للارتداء عرض إشعاراته الخاصة على الساعة. لتجنُّب هذا النوع من التكرار، عليك إيقاف الربط آليًا في تطبيقك على الجهاز القابل للارتداء.
استخدام علامات الربط
إذا أردت نقل بعض الإشعارات التي تم إنشاؤها على تطبيقك للأجهزة الجوّالة إلى الساعة عند تثبيت تطبيقك للأجهزة القابلة للارتداء، عليك ضبط علامات النقل.
اضبط علامة ربط على إشعار باستخدام الطريقة
setBridgeTag(String)
كما هو موضّح في عيّنة الرمز البرمجي التالية:
val notification = NotificationCompat.Builder(context, channelId) // ... set other fields ... .extend( NotificationCompat.WearableExtender() .setBridgeTag("tagOne") ) .build()
إيقاف ميزة المشاركة
يمكنك إيقاف الربط لبعض الإشعارات أو لجميعها. ننصحك بإيقاف الربط بشكل انتقائي.
إيقاف الربط لبعض الإشعارات
يمكنك إيقاف الربط ديناميكيًا، ويمكنك اختياريًا السماح بمرور بعض الإشعارات استنادًا إلى علاماتها. على سبيل المثال، لإيقاف الربط لجميع الإشعارات باستثناء تلك التي تم وضع علامة tagOne أو tagTwo أو tagThree عليها، استخدِم العنصر BridgingConfig كما هو موضّح في المثال التالي:
// In this example, bridging is only enabled for tagOne, tagTwo and tagThree. BridgingManager.fromContext(context).setConfig( BridgingConfig.Builder(context, isBridgingEnabled = false) .addExcludedTags(listOf("tagOne", "tagTwo", "tagThree")) .build() )
إيقاف الربط بجميع الإشعارات (لا يُنصح بهذا الإجراء)
ملاحظة: لا يُنصح بإيقاف الربط لجميع الإشعارات، لأنّ إعدادات الربط المحدّدة في ملف البيان تصبح سارية فور تثبيت تطبيق على الساعة. وقد يؤدي ذلك إلى عدم تلقّي الإشعارات إذا كان على المستخدم فتح تطبيق الساعة وإعداده قبل تلقّي الإشعارات.
لمنع نقل جميع الإشعارات من تطبيق على الهاتف، استخدِم الإدخال <meta-data> في ملف البيان لتطبيق الساعة، كما هو موضّح في المثال التالي:
<!-- Beware, this can have unintended consequences before the user is signed-in --> <meta-data android:name="com.google.android.wearable.notificationBridgeMode" android:value="NO_BRIDGING" />
ملاحظة: يؤدي تحديد إعدادات الربط في وقت التشغيل إلى إلغاء إعدادات الربط ذات الصلة في ملف بيان Android.
ضبط معرّف إغلاق لمزامنة الإشعارات المشابهة
عند منع الربط باستخدام ميزة "وضع الربط"، لن تتم مزامنة عمليات إغلاق الإشعارات على أجهزة المستخدم.
ومع ذلك، إذا تم إنشاء إشعارات مشابهة على كل من الجهاز الجوّال والساعة، يجب إغلاق كلا الإشعارين عندما يغلق المستخدم أيًا منهما.
في
NotificationCompat.WearableExtender،
يمكنك ضبط رقم تعريف فريد على مستوى العالم، وبالتالي عند إغلاق إشعار، سيتم أيضًا إغلاق الإشعارات الأخرى التي تحمل رقم التعريف نفسه على الساعات المقترنة.
تحتوي الفئة
NotificationCompat.WearableExtender
على طرق تتيح لك استخدام معرّفات الرفض، كما هو موضّح في المثال التالي:
عند تجاهل الإشعار، يتم تجاهل جميع الإشعارات الأخرى التي تحمل رقم تعريف التجاهل نفسه على الساعة والهاتف. لاسترداد معرّف تجاهل، استخدِم
getDismissalId()
في المثال التالي، تم تحديد معرّف فريد عالميًا لإشعار جديد، وبالتالي تتم مزامنة عمليات الرفض:
val notification = NotificationCompat.Builder(context, channelId) // ... set other fields ... .extend( NotificationCompat.WearableExtender() .setDismissalId("abc123") ) .build()
ملاحظة: تعمل أرقام التعريف الخاصة بعمليات الرفض إذا كانت الساعة مقترنة بهاتف Android، ولكن لا تعمل إذا كانت الساعة مقترنة بهاتف iPhone.
الحالات التي لا يتم فيها ربط الإشعارات
لا يتم ربط أنواع الإشعارات التالية:
- يتم ضبط الإشعارات المحلية فقط باستخدام
Notification.Builder.setLocalOnly(boolean). - الإشعارات بنشاط مستمر في الخلفية التي تم ضبطها باستخدام
Notification.Builder.setOngoing(boolean)أوNotification.FLAG_ONGOING_EVENT - إشعارات غير قابلة للمحو تم ضبطها باستخدام
Notification.FLAG_NO_CLEAR - الإشعارات التي أوقف فيها تطبيق الجهاز القابل للارتداء المرتبط ميزة نقل الإشعارات، كما هو موضّح سابقًا
أفضل الممارسات المتعلقة بالإشعارات التي يتم نقلها
يستغرق إرسال الإشعارات التي تم ربطها أو إزالتها من جهاز قابل للارتداء بعض الوقت. عند تصميم الإشعارات، احرص على تجنُّب أي سلوك غير متوقع ناتج عن هذا التأخير. تساعد الإرشادات التالية في ضمان عمل الإشعارات التي تم ربطها مع الإشعارات غير المتزامنة:
- إذا ألغيت إشعارًا على الهاتف، قد يستغرق إلغاء الإشعار المقابل على الساعة بعض الوقت. خلال هذه الفترة، قد يرسل المستخدم أحد الأهداف المعلّقة في هذا الإشعار. لهذا السبب، يجب مواصلة تلقّي الأهداف المعلّقة في تطبيقك من الإشعارات التي تم إلغاؤها، وذلك من خلال إبقاء عمليات استقبال الأهداف المعلّقة للإشعارات صالحة عند إلغاء الإشعارات.
- لا تلغِ مجموعة كاملة من الإشعارات ثم تعيد تشغيلها في وقت واحد. عدِّل الإشعارات التي تم تعديلها فعلاً أو أزِلها. يؤدي ذلك إلى تجنُّب التأخير في تحديث الجهاز القابل للارتداء وتقليل تأثير تطبيقك في عمر البطارية.
اعتبارات التصميم
تتضمّن إشعارات Wear OS إرشادات تصميم خاصة بها. لمزيد من المعلومات، راجِع إرشادات تصميم Wear OS.