İPhone uygulamalarının kullanıcı etkileşimi olmadan arama yapma izni var mı?


9

Ben şimdi geri numarayı aramasanız bile kullanıcı ücret alır şimdi cevapsız çağrı aldatmaca hakkında okuyordu . Kötü niyetli bir iPhone uygulaması parasız aldatmaca kullanıcılara özel numaraların çağrı yapabilir aklıma - gerçekten de göründüğü bu oldu geçmişte.

Göre Apple'ın kendi belgelerinde :

Bir kullanıcı bir web sayfasında bir telefon bağlantısına dokunduğunda iOS, kullanıcının telefon numarasını gerçekten aramak isteyip istemediğini soran bir uyarı görüntüler ve kullanıcı kabul ederse aramayı başlatır. Bir kullanıcı yerel bir uygulamada tel şemasına sahip bir URL açtığında, iOS bir uyarı görüntülemez ve kullanıcıya daha fazla sormadan aramayı başlatır.

Görünüşe göre iyi huylu bir iPhone uygulaması, örneğin, telefon şarjda bırakılıncaya kadar bekleyebilir (ve muhtemelen kullanıcı tarafından katılmayacak) ve daha sonra geliştiriciye düzenli bir bonus kazandırmak için premium bir numaraya çağrı başlatabilir. . İOS'ta bu davranışı önlemek için değiştirebileceğim herhangi bir izin yok gibi görünüyor, çünkü bu, telefon uygulamasını herhangi bir telefon verilerine erişmek yerine bir URL ile açıyor.

Anlayışımın doğru olup olmadığını kimse doğrulayabilir mi, eğer öyleyse, neden Apple Apple böyle bir boşluk açmadı?

Yanıtlar:


8

Uygulamalarımdan birinden bir telefon görüşmesi başlatmaya çalışarak iOS davranışını deneysel olarak kontrol ettim.

Sonuçlar burada:

  • Kullanıcı onayı olmadan programlı olarak bir telefon görüşmesi başlatmak mümkündür. Ben sadece App yüklendikten hemen sonra yürütülen tek bir kod satırı yazdım. Uygulamanız ön planda ise, kullanıcının herhangi bir yere dokunmasına gerek kalmadan bile istediğiniz zaman çağrı başlatabileceği anlamına gelir.
  • Çalışmıyorsa uygulamayı uyandırmak için App'e sessiz bir uzaktan bildirim gönderdim ve aynı kodu çalıştırdım. Hiçbir çağrı başlatılmadı; iOS, uygulama arka planda çalışıyorsa uygulamanın telefon araması başlatmasına izin vermez.

Bu nedenle, soruları cevaplamak, kullanıcı fark etmeden bir telefon görüşmesi başlatmanın tek yolu, kullanıcıyı bir şekilde kötü amaçlı uygulamayı ön planda çalışır halde bırakmaya ve ardından telefon görüşmesini başlatmaya ikna etmektir, çünkü iOS bu işleme izin vermez uygulama arka plana sahipse.

Şu anda iOS, belirli bir uygulamadan telefon görüşmelerini başlatmayı engellemek için herhangi bir mekanizma sağlamamaktadır, ancak yalnızca uygulama ön planda olduğunda gerçekleşebilir.


Kapsamlı soruşturma için teşekkürler, parlak cevap. Yardım edemesem de sadece ön planda olduğunu duyduğuma sevindim, ancak katılımsız ve ön planda bırakılması muhtemel bir uygulamayı icat etmenin çok zor olmadığını düşünüyorum - hızlandırılmış kamera uygulaması bir şey türüne iyi bir örnek. Diğer uygulamalarda URL'leri açmayı tercih ediyorum, açılan her uygulama için bir izin vardı - her seferinde değil, harici uygulama başına ilk kez onaylandı. Ancak bunun UX sonuçları olduğunu kabul ediyorum. Sanırım herkes uyanık olmalı.
Cartroo

5

Bunu kontrol etmek için bir test uygulaması yaptım. Uygulama, URL'yi tel://123456789yalnızca ön planda ve etkin durumdayken açabilir . Arka plan durumuna girdikten hemen sonra bile bu kodu çağırdığımda, bu URL'yi açmak için API hiçbir şey yapmadı. Dolayısıyla, sorunuzu cevaplamak için - uygulamalar sizin bilginiz olmadan arama yapamaz.

Bunu test etmek için şunu yapıştırın AppDelegate:

- (void)applicationDidEnterBackground:(UIApplication *)application {
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://123456789"]];
}

Harika cevap, kod için teşekkürler. Her iki yanıtı da kabul edebilseydim yapardım.
Cartroo

2

İOS> = 10.3'te bir çağrı başlatmaya çalışırken, kullanıcıya her zaman bir açılır pencere görüntülenir. Dokümanlar

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.