Další změny architektur pro iOS 9
Tento článek se zabývá dalšími drobnými změnami nebo vylepšeními stávajících architektur pro iOS 9.
Kromě hlavních změn v iOSu apple provedl úpravy a vylepšení několika stávajících architektur v iOSu 9.
Přidání architektury AVFoundation
V architektuře AVFoundation teď třída AVSpeechSynthesisVoice umožňuje kromě jazyka zadat hlas podle identifikátoru.
Například následující kód získá seznam všech dostupných hlasů:
var voices = AVSpeechSynthesisVoice.GetSpeechVoices ();
Jeden z hlasů ze seznamu pak můžete použít tak, že ho nastavíte jako Voice
vlastnost instance třídy AVSpeachUtterance .
Třída AVQueuePlayer nyní podporuje kombinaci internetových streamů a souborových médií ve frontě. Předchozí verze mohly zařadit do fronty pouze média stejného typu.
Další informace najdete v referenčních informacích společnosti Apple AVSpeechSynthesisVoice.
Doplňky architektury AVKit
Pro práci s novou funkcí Picture-in-Picture (PIP) zahrnuje architektura AVKit nové AVPictureInPictureController
třídy AVPlayerViewController:
- AVPictureInPictureController – tato třída umožňuje aplikaci pro iOS 9 reagovat na uživatele, který spustí přehrávání videa v plovoucím okně pip s možností změny velikosti na iPadu.
- AVPlayerViewController – spravuje
AVPlayer
kontroler použitý k prezentaci videa v plovoucím okně pip s možností změny velikosti na iPadu.
Další informace naleznete v dokumentaci k multitaskingu pro iPad a referenční informace společnosti Apple AVPictureInPictureController Reference a AVPlayerViewController Reference.
Představení webových služeb CloudKit
Architektura CloudKit zjednodušuje vývoj aplikací, které přistupují k iCloudu. To zahrnuje načítání práv k datům aplikací a prostředkům a také možnost bezpečného ukládání informací o aplikaci. Tato sada poskytuje uživatelům vrstvu anonymizace tím, že umožňuje přístup k aplikacím se svými ID iCloudu bez sdílení osobních údajů.
Nová architektura Webových služeb CloudKit poskytuje javascriptovou knihovnu (CloudKit JS), kterou je možné začlenit do vašeho webu a poskytnout tak přístup ke stejným datům a obsahu založeným na CloudKitu jako vaše aplikace Xamarin.iOS.
Důležité
Než budete moct získat přístup k databázi CloudKitu, prezentovat nebo aktualizovat obsah z databáze CloudKit JS, musíte mít dříve definované schéma této databáze.
Další informace najdete v následujících dokumentech:
- Úvod do CloudKitu – Náš úvod do používání CloudKitu v aplikaci Xamarin.iOS
- Rychlý start CloudKit – Úvod společnosti Apple do CloudKitu
- Referenční dokumentace k JS CloudKitu – dokumentace Apple CloudKit JS.
- Katalog CloudKit: Úvod do CloudKitu (Cocoa a JavaScript) – ukázková aplikace Apple využívající CloudKit a CloudKit JS.
Důležité
Apple poskytuje nástroje , které vývojářům pomáhají správně zvládnout obecné nařízení Evropské unie o ochraně osobních údajů (GDPR).
Doplňky architektury Foundation Framework
Apple zahrnul následující změny architektury Foundation v iOSu 9:
Změny ve skupině NSBundle
Ve třídě NSBundle pro iOS 9 byly provedeny následující změny:
GetPreservationPriorityForTag (NSString tag)
- Získá aktuální prioritu zachování pro prostředky s danou značkou. Platné hodnoty jsou v rozsahu0.0
až1.0
, prostředky s nejnižší prioritou budou nejprve vyprázdněné.SetPreservationPriorityForTag (double priority, NSSet tags)
- Nastaví aktuální prioritu zachování prostředků s danými značkami. Platné hodnoty jsou v rozsahu0.0
až1.0
, prostředky s nejnižší prioritou budou nejprve vyprázdněné.
Další informace najdete v referenčních informacích k NSBundle společnosti Apple.
Změny v NSProcessInfo
Každý proces spuštěný na zařízení s iOSem má jeden proces, procesový informační agent (PIA). Pomocí NSProcessInfo třídy poskytnout informace o aktuální PIA a řízení výkonu a tepelné řízení pro daný proces.
Pokud chcete například řídit automatické ukončení procesu, můžete použít následující kód:
// Disable automatic termination
var activity = NSProcessInfo.ProcessInfo.BeginActivity(NSActivityOptions.AutomaticTerminationDisabled, "Define reason for change here...");
// Perform the required task
...
// Return to normal operation
NSProcessInfo.ProcessInfo.EndActivity(activity);
Další informace najdete v referenčních informacích k NSProcessInfo společnosti Apple.
Reakce na režim nízkého napájení
LowPowerModeEnabled
Pomocí vlastnosti NSProcessInfo třídy určit, zda je režim nízkého výkonu povolen na zařízení s iOSem, na kterém je aplikace spuštěna. Příklad:
// Is the device in low power mode?
if (NSProcessInfo.ProcessInfo.LowPowerModeEnabled) {
// Reduce activity to conserve energy...
} else {
// Return to normal activity...
}
Změny architektury HealthKit
Apple zahrnul následující změny architektury HealthKit v iOSu 9:
- Podpora hromadného odstranění a sledování položek v databázi HealthKit. Další informace najdete v referenčních informacích ke třídě HKDeletedObject, HKAnchoredObjectQuery a HKHealthStore společnosti Apple.
- Do třídy (například
UVExposure
) a třídyHKCategoryTypeIdentifier
(například) byly přidányHKQuantityTypeIdentifier
nové kategorie sledování a charakteristiky (napříkladOvulationTestResult
).
Další informace o práci s HealthKitem v Xamarin.iOS najdete v naší dokumentaci Úvod do sady HealthKit .
Změny místní architektury ověřování
Apple zahrnul následující změny architektury místního ověřování v iOSu 9:
EvaluateAccessControl
Pomocí aEvaluatePolicy
metod třídy LAContext teď můžete opakovaně používat shody Touch ID z předchozích úspěšných pokusů o odemknutí.- Možnost získat seznam aktuálně registrovaných prstů.
- Podpora sledování při přidání nebo odebrání prstu z ověřování
- Možnost používat kontext ověřování ve volání řetězce klíčů a podporu pro vyhodnocování seznamů řízení přístupu řetězce klíčů.
- Možnost zrušit výzvu uživatele z kódu.
Další informace najdete v tématu Touch ID a Face ID s Xamarin.iOS.
Změny LAContext
V třídě LAContext pro iOS 9 byly provedeny následující změny:
- TouchIdAuthenticationMaximumAllowableReuseDuration – vrátí maximální dobu, po kterou je možné znovu použít ověřování touch ID.
- EvaluatedPolicyDomainState – Získá nebo nastaví stav vyhodnocené zásady.
- MaxBiometryFailures - Byl vyřazen v iOSu 9.
- TouchIdAuthenticationAllowableReuseDuration Získá nebo nastaví dobu, po kterou se dá znovu použít ověřování touch ID.
- EvaluateAccessControl – Asynchronně vyhodnocuje zásady ověřování.
- Zneplatnění – Zneplatní dané ověřování touch ID.
- IsCredentialSet – vrátí
true
, pokud jsou přihlašovací údaje aktuálně nastavené. - SetCredentialType Nastaví daný typ přihlašovacích údajů.
Další podrobnosti najdete v referenčních informacích společnosti Apple k LAContext.
Změny architektury MapKit
Apple zahrnul následující změny architektury MapKit v iOSu 9:
- MapKit teď poskytuje podporu pro spuštění aplikace Mapy přímo do navigačních pokynů pro dopravu a dotazování odhadovaného času příjezdu (ETA) pomocí tříd MKLaunchOptions a MKDirections .
- Výsledky hledání vrácené MapKitem a třídou CLGeocoder mohou také poskytnout časové pásmo výsledku.
- Nyní můžete plně přizpůsobit mapové poznámky prezentované vaší aplikací pro iOS pomocí
DetailCalloutAccessoryView
vlastnosti MKAnnotationView třídy.
Další informace o práci s Mapy a poznámkami v Xamarin.iOS a reference k CLGeocoder společnosti Apple najdete v dokumentaci k iOSu Mapy a návodu – prozkoumání poznámek a překryvných objektů v dokumentaci k MapKitu.
Doplňky architektury PassKit
Apple zahrnul následující změny architektury PassKit v iOSu 9:
- Apple Pay teď podporuje i debetní i kreditní karty společně s kartami Discover. Další informace najdete v části Platební sítě v referenčních informacích ke třídě PKPaymentRequest společnosti Apple.
- Přímo v aplikaci Xamarin.iOS teď můžete přidat platební sítě a vydavatele karet do Apple Pay. Další podrobnosti najdete v referenčních informacích ke třídě PKAddPaymentPassViewController od společnosti Apple.
Další informace o práci s PassKitem v Xamarin.iOS najdete v naší dokumentaci Úvod k PassKitu .
Doplňky architektury služby Safari
Apple zahrnul následující změny architektury služeb Safari v iOSu 9:
- Nyní můžete použít novou třídu SFSafariViewController k zobrazení webového obsahu v aplikaci Xamarin.iOS. Poskytuje možnost sdílet data webových stránek a soubory cookie s aplikací Safari a zahrnuje několik funkcí Safari (například Čtenář a Automatické vyplňování). SFSafariViewController obsahuje tlačítko Hotovo , které vrátí uživatele do vaší aplikace po dokončení prohlížení webového obsahu.
Vzhledem k tomu, že třída SFSafariViewController je přizpůsobena pro zobrazení jedné stránky webového obsahu, měli byste zvážit jeho použití k nahrazení všech ovládacích prvků WKWebKit nebo UIWebView v existujících aplikacích Xamarin.iOS.
Zobrazení webu
Následující kód je příkladem volání SFSafariViewController z jiného kontroleru zobrazení:
// Create an instance of the Safari Services View Controller
var controller = new SFSafariViewController(new NSUrl("http://www.xamarin.com"));
// Display website
PresentViewController(controller, true, null);
Změny architektury UIKit
Apple zahrnul mnoho vylepšení několika prvků architektury UIKit pro iOS 9. Tyto změny jsou podrobně popsané v následujících částech.
3D dotykové události
Novinka v iOSu 9 a i Telefon 6s a i Telefon 6s Plus, 3D Touch přidává do aplikací pro iOS citlivá na tlaková gesta. V důsledku toho platí, že pokud vaše aplikace běží na iOSu 9 (nebo novějším) a zařízení s iOSem dokáže podporovat 3D Touch, změny tlaku způsobí TouchesMoved
vyvolání události.
Vzhledem k této změně chování by vaše aplikace pro iOS měly být připravené na TouchesMoved
vyvolání události častěji, i když se nezměnily souřadnice X/Y.
Další informace najdete v naší příručce Úvod do 3D Touch .
Funkce open-in-place dokumentu
FinishedLaunching (application, launchOptions)
WillFinishLaunching (Application, launchOptions)
Pomocí nebo metod třídy UIApplicationDelegate teď můžete otevřít dokument a upravit ho na místě (na rozdíl od práce na kopii).
Pokud chcete podporovat novou funkci open-in-place, přidejte LSSupportsOpeningDocumentsInPlace
klíč do souboru Info.plist aplikace Xamarin.iOS s hodnotou YES
.
Další podrobnosti najdete v referenčních informacích k UIApplicationDelegate od Společnosti Apple.
Události rozšířeného dotykového ovládání
Apple nabízí několik vylepšení dotykových událostí v iOSu 9. Patří mezi ně možnost používat dotykové predikce a získat přístup k přechodným dotykům mezi aktualizacemi zobrazení.
Další podrobnosti najdete v Průvodci zpracováním událostí společnosti Apple pro iOS .
Načítání přizpůsobeného obsahu
Nová NSDataAsset
třída umožňuje aplikaci Xamarin.iOS načíst obsah přizpůsobený paměti a grafickým schopnostem zařízení s iOSem, na kterém je aktuálně spuštěná.
Nové ukotvení rozložení
NSLayoutAnchor
Nové třídy ukotvení a NSLayoutDimension
rozložení pracují s novými vlastnostmi ukotvení třídy UIView (například LeadingAnchor
aWidthAnchor
), aby bylo rozložení v iOSu 9 jednodušší.
Další informace o práci s autoLayout a třídami velikostí v aplikaci Xamarin.iOS a referenčních informacích k NSLayoutAnchor, NSLayoutDimension Reference a reference k uiView najdete v naší dokumentaci úvodu do sjednocených scénářů.
Nové čitelné okraje obsahu
Novou UILayoutGuide
třídu lze použít k poskytnutí čitelných okrajů obsahu a definování oblastí kreslení pro obsah uvnitř zobrazení. Další informace najdete v referenčních informacích společnosti Apple UILayoutGuide.
Textové zadání v úpravách oznámení
UIUserNotificationAction třída má novou Behavior
vlastnost, kterou lze použít k podpoře textového vstupu z oznámení.
Změny UIApplicationDelegate
I když společnost Apple formálně není zastaralá, navrhují nahradit všechna volání FinishedLaunching (UIApplication application)
metody UIApplicationDelegate třídy buď metodami FinishedLaunching (UIApplication application, NSDictionary launchOptions)
, nebo WillFinishLaunching (UIApplication application, NSDictionary launchOptions)
metodami.
Další podrobnosti najdete v referenčních informacích k UIApplicationDelegate od Společnosti Apple.
Změny Dynamics sady UIKit
Apple zahrnul následující změny dynamics UIKitu v iOSu 9:
- Dynamics teď poskytuje podporu pro hranice kolizí, které nejsou obdélníkové.
- Nová přizpůsobitelná
UIFieldBehavior
třída se používá k podpoře různých typů polí. - Do třídy byly přidány
UIAttachmentBehavior
další typy příloh.
Další podrobnosti najdete v referenčních informacích k UIAttachment společnosti Apple.
UiPickerView a UIDatePicker – změny
Před iOSem 9 byly ovládací prvky UIPickerView a UIDatePicker nešizovatelné a automaticky by se změnila velikost tak, aby vyplnila šířku jejich kontejneru (obvykle šířka zařízení s iOSem, na kterém aplikace běží).
V iOSu 9 už k této automatické změně velikosti nedojde a ovládací prvky se budou vykreslovat na všech zařízeních s iOSem o šířce 320 bodů bez ohledu na velikost a orientaci obrazovky.
Chcete-li tuto situaci opravit, připnete šířku ovládacího prvku na okraje nadřazeného kontejneru (zobrazení) pomocí třídy automatického rozložení a velikosti a určíte požadovanou výšku. Další informace o práci s třídami automatického rozložení a velikosti v aplikaci Xamarin.iOS najdete v naší dokumentaci Úvod do sjednocených scénářů .
New UITextInputAssistantItem – třída
Pomocí nové UITextInputAssistantItem
třídy můžete skupiny tlačítek pruhu rozložení na panelu zástupců. Panel klávesových zkratek je nová oblast, která je k dispozici v softwarové klávesnici, která poskytuje klávesové zkratky pro psaní.