توصيل الإشعارات

الإعلانات

وضع التوصيل للإشعارات على الساعه

 

إفتراضياً، يتم توصيل الإشعارات (تتم مشاركتها) من تطبيق على الهاتف المصاحب إلى الساعة المقترنة.

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

أنظمة تشغيل الساعات من قوقل تحتوي على خصائص لمعالجة هذه المشكلة من الإشعارات المكررة.

راجع الموارد التالية:

نموذج إشعارات الساعه

 

ملاحظة: يمكنك إستخدام “سحابة المراسله على فايربيس” (Firebase Cloud Messaging(FCM لإرسال تنبيهات الإشعار إلى الأجهزة. اطلع على ربط المستخدمين من خلال الأندرويد و أنظمة أبل و الكروم.

 

يمكن للمطورين تغيير سلوك الإشعارات بواحد أو أكثر من الإجراءات التالية:

  • تحديد تكوين التوصيل في ملف الإيضاح.
  • تحديد تكوين التوصيل أثناء تشغيل التطبيق.
  • تعيين معرّف الإلغاء لمزامنة عمليات إزالة الإشعارات عبر الأجهزة.

 

 

 

 

تحديد تكوين التوصيل في ملف الإيضاح


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

لمنع توصيل الإشعارات من تطبيق هاتف بشكلٍ خاص، يمكنك إستخدام إدخال “البيانات الوصفيه” <meta-data> ..

في ملف الإيضاح الخاص بتطبيق الساعة (مثال، تطبيق الساعة المستقل)، كما يلي:

com.google.android.wearable.notificationBridgeMode

 

أضف إدخال تلك البيانات الوصفية <meta-data> كتابع لعنصر التطبيق <application>. قم بتعيين هذا الإدخال إلى “لا.توصيل” NO_BRIDGING لمنع التوصيل:

<application>
...
  <meta-data
    android:name="com.google.android.wearable.notificationBridgeMode"
    android:value="NO_BRIDGING" />
...
</application>

 

 

يحدث سلوك التوصيل الإفتراضي إذا لم تقم بتضمين إدخال “البيانات الوصفيه” <meta-data> أو إذا قمت بتحديد قيمة “توصيل” BRIDGING بدلاً من “لا.توصيل” NO_BRIDGING.

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

 

 

 

 

تحديد تكوين التوصيل أثناء تشغيل التطبيق


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

يمكنك ضبط وضع التوصيل، وضبط الوسوم بشكلٍ إختياري للإشعارات المعفاة من وضع التوصيل، بإستخدام كائن “إدارة التوصيل” BridgingManager.

على وجه التحديد، قم بإنشاء كائن “تكوين التوصيل” BridgingConfig وقم بتعيينه كما هو موضح في هذا القسم.

يؤدي تحديد تكوين التوصيل أثناء التشغيل إلى تجاوز إعدادات التوصيل ذات الصله في ملف إيضاح الأندرويد.

 

 

 

 

 

 

تعطيل التوصيل لجميع الإشعارات


يمكنك تعطيل التوصيل لجميع الإشعارات، على النحو التالي:

KOTLIN

BridgingManager.fromContext(context).setConfig(
        BridgingConfig.Builder(context, false).build()
)

JAVA

BridgingManager.fromContext(context).setConfig(
  new BridgingConfig.Builder(context, false)
    .build());

 

إذا لم يتم تعيين التكوين أعلاه، فسيصبح وضع التوصيل إفتراضياً “صحيح”.

 

 

 

 

الإشعارات المعفاة التي تم وسمها


يمكنك تعطيل التوصيل لجميع الإشعارات بإستثناء تلك التي تحتوي على وسوم معينة.

مثال، يمكنك تعطيل التوصيل لجميع الإشعارات بإستثناء تلك التي تم وسمها كـ foo أو bar أو baz.

KOTLIN

BridgingManager.fromContext(context).setConfig(
        BridgingConfig.Builder(context, false).build()
)

JAVA

BridgingManager.fromContext(context).setConfig(
  new BridgingConfig.Builder(context, false)
    .build());

 

وكمثال آخر، يمكنك إستبعاد إشعارات بوسوم معينة (مثل foo أو bar):

KOTLIN

BridgingManager.fromContext(context).setConfig(
        BridgingConfig.Builder(context, false)
                .addExcludedTag("foo")
                .addExcludedTag("bar")
                .build()
)

JAVA

BridgingManager.fromContext(context).setConfig(
  new BridgingConfig.Builder(context, false)
    .addExcludedTag("foo")
    .addExcludedTag("bar")
    .build());

 

 

 

 

تعيين وسم التوصيل

يمكن تعيين وسم توصيل على إشعار بإستخدام الدالة “تعيين وسم التوصيل(سلسلة نصيه)” (setBridgeTag(String كما يلي:

KOTLIN

val notification = NotificationCompat.Builder(context, channelId)
        // ... set other fields ...
        .extend(
                NotificationCompat.WearableExtender()
                        .setBridgeTag("foo")
        )
        .build()

JAVA

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, channelId)
// ... set other fields ...
  .extend(
    new NotificationCompat.WearableExtender()
      .setBridgeTag("foo"));
  Notification notification = notificationBuilder.build();

 

 

 

 

منع التوصيل في تطبيق حالي


في أحد التطبيقات الحالية، قد تكون قمت بالفعل بتعطيل التوصيل عندما يكون الهاتف غير متصل عند تلقي التنبيه.

في هذه الحالة، قد لا تزال تريد رفض الإشعار على الأجهزة الأخرى عند رفضه على تطبيق الساعة.

توجد طريقة لمنع التوصيل بإستخدام فئة “بناء الإشعارات” Notification.Builder؛ حدد القيمة “صحيح” في الداله “تعيين محلي فقط” setLocalOnly.

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

فقد تمنع دالة “تعيين محلي فقط” setLocalOnly توصيل الإشعارات المفيدة. بالإضافة إلى ذلك، قد يكون لدى المستخدمين..

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

 

 

 

 

 

إستخدم معرف الإلغاء لمزامنة عمليات إزالة الإشعارات


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

مع ذلك، تمكنك الدوال التالية للفئة “الساعه الموسعه. الإشعارات المتوافقه” NotificationCompat.WearableExtender من إستخدام معرفات الإلغاء:

KOTLIN 

fun setDismissalId(dismissalId: String): WearableExtender
fun getDismissalId(): String

JAVA 

public WearableExtender setDismissalId(String dismissalId)
public String getDismissalId()

 

 

 

لتقوم بتمكين الإلغاء لتتم مزامنته، إستخدم دالة “تعيين معرف الإلغاء” ()setDismissalId . لكل إشعار، قم بتمرير معرف فريد عمومي..

كسلسلة، عندما تستدعي الداله “تعيين معرف الإلغاء” ()setDismissalId . عندما يتم إلغاء الإشعار، يتم إلغاء جميع الإشعارات الأخرى..

التي لها نفس معرف الإلغاء على الساعة (الساعات) وعلى الهاتف المصاحب. لإسترجاع معرف الإلغاء، إستخدم “الحصول على معرف الإلغاء” ()getDismissalId .

في المثال التالي، تم تمكين مزامنة حالات الإلغاء بسبب تحديد معرف فريد عالمي لإشعار جديد:

KOTLIN

val notification = NotificationCompat.Builder(context, channelId)
        // ... set other fields ...
        .extend(
                NotificationCompat.WearableExtender()
                        .setDismissalId("abc123")
        )
        .build()

JAVA

NotificationCompat.WearableExtender wearableExtender =
  new NotificationCompat.WearableExtender().setDismissalId("abc123");
Notification notification = new NotificationCompat.Builder(context)
// ... set other fields ...
  .extend(wearableExtender)
  .build();

تعمل معرفات الإلغاء إذا تم إقران الساعه بهاتف اندرويد، ولكن ليس إذا تم إقران الساعه بهاتف آيفون.

 

 

 

 

 

أفضل الممارسات للإشعارات الموصوله


تستغرق الإشعارات الموصوله وقتاً لدفعها أو إزالتها من الساعه. أثناء تصميم الإشعارات، تأكد من تجنب حدوث سلوك غير متوقع بسبب وقت الإستجابة هذا.

ستساعدك الإرشادات أدناه على التأكد من عمل إشعاراتك الموصوله مع الإشعارات غير المتزامنة:

  •  إذا قمت بإلغاء إشعار على الهاتف، فقد يستغرق الأمر بعض الوقت لإلغاء الإشعار المقابل على الساعة. خلال هذا الوقت، يمكن للمستخدم..

إرسال واحدة من الأغراض المعلقة لهذا الإشعار. لهذا السبب، يجب أن يكون تطبيقك جاهزاً لإستلام الأغراض المعلقة من الإشعارات التي قام بإلغائها.

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

  • لا تقم بإلغاء وإعادة تشغيل مجموعة كاملة من الإشعارات في وقت واحد. فقط قم بتعديل أو إزالة الإشعارات التي تم تعديلها بالفعل.

يؤدي هذا إلى تجنب الكمون “وقت الإستجابة” عند تحديث الساعه ويضمن أن يكون تأثير تطبيقك على عمر البطارية ضئيلاً.

 

 

 

 

متطلبات التصميم

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

  • جميع الإشعارات الموصوله من الهاتف المقترن بالساعه، تستخدم الإشعارات الموسعة.
  • لمعرفة متى تستخدم قوالب الإشعار المختلفة المدعومة على نظام تشغيل الساعات، اقرأ دليل تصميم أنماط الإشعارات.
  • لمعرفة كيفية وضع إشعاراتك الخاصة على الساعه، اقرأ دليل تصميم أنماط الإشعارات.
  • إذا كان لديك تطبيق مراسلة فورية، فيجب على إشعاراتك أن تستخدم “نمط مراسلة.الإشعارات المتوافقه” NotificationCompat.MessagingStyle.

تستخدم الساعه رسائل الدردشة المضمّنة في إشعار “نمط المراسله” MessagingStyle (راجع “إضافة رسالة” ()addMessage) لتوفير تجربة غنية مثل تطبيق الدردشة في الإشعار الموسع.

  • قم بإضافة إجراء مضمن ( (setHintDisplayActionInline (true ) ضمن تدفق الإشعار لتضمين الإجراء الأساسي الذي يمكن للمستخدم إتخاذه بسرعة للإشعار.

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

  • قم بتمكين الرد الذكي (setAllowGeneratedReplies (true لإشعار نمط المراسلة الخاص بك.

 

 


للإطلاع على المقال باللغة الإنجليزية أضغط هنا.

الإعلانات