iOS - كيف يمكنني معرفة ما إذا كانت إشعار محلي تسبب تطبيقي في المقدمة؟

StackOverflow https://stackoverflow.com//questions/23009348

سؤال

لدي رمز ضمن مفوض التطبيق الخاص بي

giveacodicetagpre.

طريقة لعرض uialertview لهذا الإشعار المحلي، كلما كان تطبيقي في المقدمة.

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

giveacodicetagpre. يسمى

. بعد ذلك على الرغم من أن الطريقة الخاصة بي didrecealitynotification يتم استدعاء الأسلوب مرة أخرى، مما يؤدي إلى ظهور uialertview مرة أخرى. ولكن في الحقيقة كان لدى المستخدم بالفعل أن تنبيه في حين أن التطبيق كان في الخلفية، لذلك من الناحية المثالية أود عدم عرض هذا التنبيه مرة أخرى.

أستطيع أن أرى أنه إذا تم تشغيل التطبيق بسبب إشعار محلي ثم داخل

giveacodicetagpre.

طريقة يمكنك فحص خيارات الإطلاق لمفتاح

giveacodicetagpre.

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

التحقق مما إذا كانت الطريقة الخاصة بي تطبيق قد تبدو مؤخرا وسوف تبدو مؤخرا طريقة اختراق حول هذه المشكلة، أو ربما شيء مشابه للإجابات الواردة في هذا السؤال "ios كيفية الحكم التطبيق هو الجري الأمامية أو الخلفية؟ "سوف يسمح لي بذلك تحقق من

giveacodicetagpre.

من داخل بلدي

giveacodicetagpre.

الأسلوب. نأمل أن يتم استلامها في وقت مبكر بما فيه الكفاية بحيث لا تزال قائمة تطبيقاتي لن يتم تعيينها على uiapplicationStatactive في هذه الحالة.

أو هل هناك أي حلول أفضل لهذا؟

هتافات

هل كانت مفيدة؟

المحلول

في appdelegate، يمكنك التحقق من حالة التطبيق عند استلام التطبيق الإعلام

giveacodicetagpre.

نصائح أخرى

أردت فقط أن أقول أنني لاحظت أن الإجابة المقترحة للتحقق من تطبيقات التطبيق لديها القليل من التأثير الجانبي السيئ الذي سيتوقف عن أي شيء يحدث في حين أن مركز الإعلام أثناء فتح وأكثر من أعلى التطبيق الخاص بك. أنا شخصيا لم أكن أريد أن أوقف ذلك من آراء التنبيه الخاصة بي من يتم إنشاؤه حتى توصلت إلى بديل.

أساسا أنا فقط سجل التاريخ عند تشغيل تطبيقي آخر أخير أو مقدما، ثم كلما اختبر مواعيد الإعلام التي أقارنها عن طريق إجرائها مع تاريخ AppleStStSted وعرض الإشعار فقط إذا حدث ذلك منذ أن كان تطبيقي في المقدمة. يعمل هذا على إصلاح المشكلة في فتح التطبيق من إشعار، ولكن أيضا يسمح للتنبيهات بإظهاره عند عدم نشط التطبيق (أي خلف مركز الإعلام).

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

تعتقد فقط أنني أسجلها ما لم يكن لدى أي شخص آخر متطلبات مماثلة.

Swift 4 Solution:

giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top