علامة Push Permission Status
Push Permission Status هي علامة افتراضية تخزّن حالة إذن الإشعارات الفورية على الجهاز. استخدمها لبناء شرائح قابلية الوصول للمستخدمين الذين لا يمكن لمؤشر تشغيل/إيقاف بسيط أن يفصل بينهم، مثل المستخدمين الذين لا يزال بإمكانك طلب الإذن منهم والمستخدمين الذين رفضوه بالفعل.
قيم Push Permission Status
Anchor link toالعلامة من نوع String وتخزّن إحدى القيم أدناه لكل جهاز في كل تطبيق. تُبلغ كل منصة عن بعض هذه القيم فقط. راجع ما تُبلغ عنه كل منصة.
| القيمة | المعنى |
|---|---|
not_determined | لم يجب المستخدم على طلب الإذن بعد، لذا لا يزال بإمكان التطبيق طلبه |
granted_explicit | سمح المستخدم بالإشعارات في طلب الإذن |
granted_default | الإشعارات مسموح بها، ولكن ليس من خلال الإجابة على طلب الإذن الخاص بـ Pushwoosh SDK. على Android فقط |
provisional | الإشعارات مسموح بها مؤقتًا. تصل بهدوء إلى مركز الإشعارات، دون تنبيهات أو أصوات أو لافتات. على iOS فقط |
ephemeral | الإشعارات مسموح بها لفترة محدودة، كما في App Clip. على iOS فقط |
denied | أوقف المستخدم الإشعارات، إما في طلب الإذن أو لاحقًا في إعدادات الجهاز أو المتصفح |
unsupported | لا يمكن للمتصفح تلقي إشعارات الويب الفورية. على الويب فقط |
لا تحمل العلامة أي قيمة على tvOS وmacOS، وعلى الأجهزة التي تعمل بإصدار SDK أقدم من:
| المنصة | الحد الأدنى لإصدار SDK |
|---|---|
| iOS | 7.2.10 |
| Android | 6.17.0 |
| Web | 3.95.0 |
متى يتم تحديث العلامة
Anchor link toيُبلغ SDK عن الحالة الحالية في الأوقات التالية:
- في كل مرة يُفتح فيها التطبيق.
- عندما يُسجَّل الجهاز لتلقي الإشعارات الفورية.
- مباشرة بعد أن يجيب المستخدم على طلب الإذن.
إذا غيّر المستخدم الإذن في إعدادات الجهاز أو المتصفح، يتم تحديث العلامة لاحقًا، حسب المنصة:
| المنصة | متى يتم تحديث العلامة |
|---|---|
| iOS | في المرة التالية التي يُفتح فيها التطبيق |
| Android | في المرة التالية التي يُفتح فيها التطبيق أو يعود إلى الواجهة |
| Web: المتصفحات المستندة إلى Chromium وFirefox | فور إبلاغ المتصفح عن التغيير |
| Web: Safari | عند التحميل التالي للصفحة |
عندما يصل طلب دون حالة، على سبيل المثال من إصدار SDK أقدم، تحتفظ العلامة بآخر قيمة لها.
ما تُبلغ عنه كل منصة
Anchor link toتقرأ كل منصة الإذن من واجهة API الخاصة بنظامها، لذا تختلف مجموعة القيم حسب المنصة.
يربط iOS SDK حالة التفويض في النظام الخاصة بالتطبيق بالعلامة مباشرة.
| حالة التفويض في iOS | Push Permission Status |
|---|---|
| Not determined | not_determined |
| Authorized | granted_explicit |
| Provisional | provisional |
| Ephemeral | ephemeral |
| Denied | denied |
Android
Anchor link toيتطلب Android 13 والإصدارات الأحدث أن يسمح المستخدم بالإشعارات في طلب الإذن. أما الإصدارات الأقدم فتسمح بها افتراضيًا بعد التثبيت، لذا يفصل Android SDK بين الإجابة الصريحة والمنح الافتراضي:
granted_explicit: سمح المستخدم بالإشعارات في طلب الإذن الذي يعرضه Pushwoosh SDK، على Android 13 أو أحدث، في تطبيق يستهدف Android 13 (مستوى API 33) أو أحدث.granted_default: الإشعارات مسموح بها بأي طريقة أخرى. يشمل ذلك Android 12 والإصدارات الأقدم، والتطبيقات التي تستهدف مستوى API أقل من 33، والإذن الذي كان مسموحًا به بالفعل عندما تحقق منه SDK لأول مرة، والإذن الممنوح من طلب الإذن الخاص بك أو من إعدادات النظام.not_determined: على Android 13 والإصدارات الأحدث، الإشعارات متوقفة ولم يجب المستخدم على طلب الإذن بعد، بما في ذلك عندما يغلق الطلب دون اختيار.denied: الإشعارات متوقفة بعد أن رفض المستخدم طلب الإذن، أو بعد أن كانت مسموحًا بها من قبل. على Android 12 والإصدارات الأقدم، يُبلغ أي جهاز أُوقفت فيه الإشعارات عنdenied.
لا تسمح المتصفحات بالإشعارات إلا بعد أن ينقر المستخدم للسماح بها، لذا لا يُبلغ جهاز الويب أبدًا عن granted_default.
| إذن المتصفح | Push Permission Status |
|---|---|
لم يُطلب بعد (default) | not_determined |
مسموح (granted) | granted_explicit |
محظور (denied) | denied |
| المتصفح لا يدعم إشعارات الويب الفورية | unsupported |
بناء شرائح قابلية الوصول
Anchor link toاجمع القيم في فلتر Push Permission Status واحد باستخدام العامل واحد من لاستهداف المستخدمين حسب طريقة الوصول إليهم. تعرّف على المزيد حول بناء الشرائح حسب العلامات.
| الشريحة | الفلتر | طريقة الاستخدام |
|---|---|---|
| المستخدمون الذين يرون تنبيهات الإشعارات | واحد من granted_explicit، granted_default | أرسل الإشعارات الفورية الحساسة للوقت |
| التسليم الهادئ فقط | واحد من provisional، ephemeral | توقّع ظهورًا أقل، وادعُ هؤلاء المستخدمين إلى السماح بالإشعارات الكاملة |
| المستخدمون الذين لا يزال بإمكانك سؤالهم | واحد من not_determined | إظهار رسالة داخل التطبيق قبل طلب إذن الإشعارات |
| المستخدمون الذين رفضوا | واحد من denied | تواصل معهم عبر البريد الإلكتروني أو SMS أو رسائل داخل التطبيق، أو شغّل نافذة منبثقة لاستعادة المشتركين الذين ألغوا الاشتراك |
| المتصفحات التي لا تدعم إشعارات الويب الفورية | واحد من unsupported | استخدم قنوات أخرى لمستخدمي الويب هؤلاء |
للعثور على الأجهزة التي لا تُبلغ عن العلامة بعد، استخدم العامل غير محدد. تعمل هذه الأجهزة بإصدار SDK أقدم، لذا استهدفها باستخدام Push Alerts Enabled بدلاً من ذلك. لمعرفة الفرق بين العلامتين، راجع Push Permission Status مقابل Push Alerts Enabled.
Push Permission Status مقابل Push Alerts Enabled
Anchor link toتجيب العلامتان عن سؤالين مختلفين:
- Push Alerts Enabled (Boolean): هل يمكن لهذا الجهاز عرض تنبيهات الإشعارات الآن؟
- Push Permission Status (String): ما حالة الإذن؟ تفصل هذه العلامة بين حالات يُبلغ عنها Push Alerts Enabled بنفس القيمة
false، مثل عدم الطلب مطلقًا والرفض.
يقارن الجدول كيف تُبلغ العلامتان عن الحالات الشائعة.
| Push Alerts Enabled | Push Permission Status | |
|---|---|---|
| النوع | Boolean | String |
| لم يُطلب الإذن مطلقًا | false | not_determined |
| تم رفض الإذن | false | denied |
| إذن مؤقت أو محدود المدة على iOS | يعتمد على إعدادات التنبيه والصوت والشارة | provisional أو ephemeral |
| منح صريح أو افتراضي | true عندما يعرض الجهاز التنبيهات | granted_explicit أو granted_default |
| الأجهزة التي تعمل بإصدارات SDK أقدم | يُبلغ عنها في جميع إصدارات SDK | غير محدد |
اختر العلامة حسب السؤال الذي تحتاج إلى الإجابة عنه:
- استخدم Push Alerts Enabled لحساب سريع لعدد المستخدمين الموافقين (opt-in) عبر جميع إصدارات SDK.
- استخدم Push Permission Status عندما تعتمد خطوتك التالية على سبب عدم إمكانية الوصول إلى المستخدم. على سبيل المثال، اطلب الإذن من المستخدمين الذين لم يُسألوا مطلقًا، واترك المستخدمين الذين رفضوا دون إزعاج.