Bu sabah bir bıçak aldım ve bunun için bir kamu API'sinin olmadığını söylemeye meyilliyim.
here'da belirtilen kodu kullanmayı denedim ve herhangi bir bildirim yakalamadım. Sonra, bir şey bulabileceğimi görmek için bir sürü "test" yaptım.
Test etmek için, bir çift uygulama oluşturdum, one to schedule notifications (GitHub link) ve one to try and "catch" them (GitHub link). Gönderen uygulamasında her N saniyede bir N bildirimi gönderebilirim. Bazı keyfi yüksek değeri seçtim ve yolladım.
Yakalamamda, visibleRect değerlerine katman hiyerarşisinde yukarı ve aşağı bakmayı denedim. (KeyWindow bir katmanda yaşar, ancak bu süper görüntüdür ve süper layer.delegate ikisi de sıfırdır) Kısıtlamaları kontrol etmedim, ancak bu önemli olmamalı. Uygulamanın penceresine baktım, süper bir süper görüntü, katmanı, alt görüntüleri. Uygulamanın sınırları da etkilenmez. Uygulamaya bu kadar iyi korumalı, uygulamanın dünyasında springboard ve bildirim merkezi yok.
Özel çerçevelere erişme yoluna gitmeye başladım, ancak bu çabaya değmeyeceğine karar verdim.
Enstrümanlar'ı açtım ve görünümlerin saydamlık seviyelerine baktım. (Bir hiyerarşideki tüm görünümleri opak olmaya zorlamak mümkün mü ve afişin bir şeyi engelleyip engellemediğini görmek için bunu kullanabilir miyim? Belki de şeffafsa "engelleme" değil?)
Ayrıca denemeyi denedim Bir ekran görüntüsü seçin ve ekranın üst kısmındaki renkleri kontrol edin, ancak bu durum işe yaramayacağınız için işe yaramaz. Çalışsa bile, özellikle performans göstermez.
Bastırıcı bağlantı noktasında push bildirimlerini dinlemek zorunda olduğumu düşündüğüm başka bir düşünce de Apple'ın başka bir uygulamanın bildirimlerini yakalamanıza izin verdiğinden şüpheliyim. Bir geliştirici olarak, özel bilgileri bir uyarıya göndermem, ancak yine de bir endişe.
Gerçek şu ki, bildirim afişleri uygulamanızın etkin olmamasına neden olmadığından, bu davranışın yanlış olduğundan emin değilim. Bir kolaylık ise, bir hata dosyası. DeviceWillShowNotificationNotification
'u nasıl talep edebilirim?
Ucuz çekim: Pencerenin çerçevesi veya sınırları değişiyor mu? Öyleyse, uygulama penceresinin sınırlarında KVO'yu deneyebilir misiniz? – Moshe
Kısa Yanıt: Yasal bir şey yok. APNS bir istemci-sunucu modeli olarak tasarlanmıştır, bu yüzden sizin olmayan bir başlıktan asla haberdar edilmemelisiniz. Uzun Yanıt: Bildirim afişleri görünür ve bu nedenle görünümler veya katmanlar olması gerekir. Her iki durumda da, bir afiş gösterildiğinde pencere hiyerarşisinin muhtemelen değişebileceği bir önsezim var. – CodaFi
@ CodaFi- Benim tahminim sizin * pencerenizde değil ve uygulamanızın görünüm hiyerarşisinin tamamen dışındadır. – BergQuester