iOS UIActivity Sharing
iOS UIActivity Paylaşımı
UIActivity Paylaşımı Basitleştirildi
iOS 6'dan itibaren, üçüncü taraf uygulamaların metin, URL veya resim gibi verileri paylaşmasına olanak tanınmıştır. Bu özellik, Apple'ın Uygulama Arası İletişim kılavuzunda belirtildiği gibi AirDrop gibi mekanizmalar aracılığıyla gerçekleşir. Bu özellik, "Paylaş" düğmesiyle etkileşime geçildiğinde ortaya çıkan sistem genelinde bir paylaşım etkinlik sayfası ile kendini gösterir.
Tüm yerleşik paylaşım seçeneklerinin kapsamlı bir numaralandırması UIActivity.ActivityType adresinde bulunabilir. Geliştiriciler, uygulamaları için uygun bulmadıkları belirli paylaşım seçeneklerini hariç tutmayı tercih edebilirler.
Veri Nasıl Paylaşılır
Dikkat şu noktalara yönlendirilmelidir:
Paylaşılan verinin doğası.
Özel etkinliklerin dahil edilmesi.
Belirli etkinlik türlerinin hariç tutulması.
Paylaşım, paylaşılacak öğelerin geçirildiği bir UIActivityViewController
örnekleme ile kolaylaştırılır. Bunun için aşağıdaki çağrı yapılır:
Geliştiriciler, UIActivityViewController
'ı incelemeli ve başlatıldığı aktiviteleri ve özel aktiviteleri, ayrıca belirtilen excludedActivityTypes
'ı dikkatlice kontrol etmelidir.
Veri Alma Nasıl Yapılır
Veri alırken aşağıdaki unsurlar önemlidir:
Özel belge türlerinin bildirimi.
Uygulamanın açabileceği belge türlerinin belirtilmesi.
Alınan verinin bütünlüğünün doğrulanması.
Kaynak koduna erişim olmadan, bir uygulamanın hangi belge türlerini işleyebileceğini ve bildirebileceğini anlamak için Info.plist
dosyası incelenebilir. UTExportedTypeDeclarations
, UTImportedTypeDeclarations
ve CFBundleDocumentTypes
gibi anahtarlar bu tür belgelerin tanımlanması ve sistem genelinde tanınması için UTI'ların tanımlanmasının ve uygulamanızın "Aç ile" iletişim kutusuna entegre edilmesinin önemini vurgulamaktadır.
Bu anahtarlar hakkında özlü bir kılavuz Stackoverflow üzerinde mevcuttur.
Dinamik Test Yaklaşımı
Aktiviteleri göndermek için şunlar yapılabilir:
Paylaşılan öğeleri ve paylaşılan aktiviteleri yakalamak için
init(activityItems:applicationActivities:)
yöntemine bağlanmak.excludedActivityTypes
özelliğini engelleyen aktiviteleri yakalamak içinexcludedActivityTypes
özelliğini engelleyen aktiviteleri yakalamak.
Öğeleri almak için şunlar yapılmalıdır:
Başka bir kaynaktan (örneğin, AirDrop, e-posta) uygulamayla bir dosya paylaşmak ve "Aç ile..." iletişim kutusunu tetiklemek.
Uygulamanın yanıtını gözlemlemek için statik analiz sırasında belirlenen diğer yöntemler arasında
application:openURL:options:
yöntemine bağlanmak.Uygulamanın sağlamlığını değerlendirmek için hatalı dosyalar veya fuzzing teknikleri kullanmak.
Referanslar
Last updated