iOS UIActivity Sharing
iOS UIActivity Sharing
UIActivity Sharing Simplified
Od iOS 6 pa nadalje, aplikacije trećih strana su omogućene da dele podatke kao što su tekst, URL-ovi ili slike koristeći mehanizme poput AirDrop-a, kako je navedeno u Apple-ovom Vodiču za međusobnu komunikaciju aplikacija. Ova funkcija se manifestuje kroz sistemski sheet za deljenje aktivnosti koji se pojavljuje prilikom interakcije sa dugmetom "Podeli".
Sveobuhvatna enumeracija svih ugrađenih opcija deljenja dostupna je na UIActivity.ActivityType. Programeri mogu odlučiti da isključe određene opcije deljenja ako smatraju da nisu prikladne za njihovu aplikaciju.
Kako deliti podatke
Pažnja treba biti usmerena na:
Prirodu podataka koji se dele.
Uključivanje prilagođenih aktivnosti.
Isključivanje određenih tipova aktivnosti.
Deljenje se olakšava instanciranjem UIActivityViewController
, kojem se prosleđuju stavke koje se nameravaju deliti. To se postiže pozivanjem:
Developeri bi trebali pažljivo ispitati UIActivityViewController
za aktivnosti i prilagođene aktivnosti sa kojima je inicijalizovan, kao i sve navedene excludedActivityTypes
.
Kako primiti podatke
Sledeći aspekti su ključni prilikom primanja podataka:
Deklaracija prilagođenih tipova dokumenata.
Specifikacija tipova dokumenata koje aplikacija može otvoriti.
Verifikacija integriteta primljenih podataka.
Bez pristupa izvornoj kodu, može se još uvek ispitati Info.plist
za ključeve kao što su UTExportedTypeDeclarations
, UTImportedTypeDeclarations
, i CFBundleDocumentTypes
kako bi se razumele vrste dokumenata koje aplikacija može obraditi i deklarisati.
Kratak vodič o ovim ključevima dostupan je na Stackoverflow, naglašavajući važnost definisanja i uvoza UTI za sistemsko prepoznavanje i povezivanje tipova dokumenata sa vašom aplikacijom za integraciju u dijalogu "Otvoriti sa".
Dinamički pristup testiranju
Da bi se testirale aktivnosti slanja, može se:
Uključiti u metodu
init(activityItems:applicationActivities:)
kako bi se uhvatili stavke i aktivnosti koje se dele.Identifikovati isključene aktivnosti presretanjem svojstva
excludedActivityTypes
.
Za primanje stavki, to uključuje:
Deljenje datoteke sa aplikacijom iz drugog izvora (npr. AirDrop, email) koja pokreće dijalog "Otvoriti sa...".
Uključivanje
application:openURL:options:
među drugim metodama identifikovanim tokom statičke analize kako bi se posmatrao odgovor aplikacije.Korišćenje neispravnih datoteka ili fuzzing tehnika za procenu otpornosti aplikacije.
Reference
Last updated