Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra altre modifiche o miglioramenti secondari ai framework esistenti per iOS 9.
Oltre alle principali modifiche apportate a iOS, Apple ha apportato modifiche e miglioramenti a diversi framework esistenti in iOS 9.
Addizioni del framework AVFoundation
Nel framework AVFoundation la classe AVSpeechSynthesisVoice consente ora di specificare una voce in base all'identificatore oltre al linguaggio.
Ad esempio, il codice seguente ottiene un elenco di tutte le voci disponibili:
var voices = AVSpeechSynthesisVoice.GetSpeechVoices ();
È quindi possibile usare una delle voci dell'elenco impostandola come Voice proprietà di un'istanza della classe AVSpeachUtterance .
La classe AVQueuePlayer supporta ora una combinazione di contenuti multimediali basati su internet e su file nella coda. Le versioni precedenti potevano solo accodare supporti dello stesso tipo.
Per altre informazioni, vedere le informazioni di riferimento su AVSpeechSynthesisVoice di Apple.
Aggiunte al framework AVKit
Per usare la nuova funzionalità Pip (Picture-in-Picture), il framework AVKit include le classi new AVPictureInPictureController e AVPlayerViewController :
- AVPictureInPictureController : questa classe consente a un'app iOS 9 di rispondere all'utente che avvia la riproduzione di un video in una finestra PIP mobile e ridimensionabile in un iPad.
- AVPlayerViewController : gestisce un
AVPlayercontroller usato per presentare un video in una finestra PIP mobile e ridimensionabile su un iPad.
Per altre informazioni, vedere la documentazione di Multitasking per iPad e le informazioni di riferimento su AVPictureInPictureController di Apple e le informazioni di riferimento su AVPlayerViewController.
Introduzione ai servizi Web CloudKit
Il framework CloudKit semplifica lo sviluppo di applicazioni che accedono a iCloud. Sono inclusi il recupero dei dati dell'applicazione e dei diritti di asset, nonché la possibilità di archiviare in modo sicuro le informazioni dell'applicazione. Questo kit offre agli utenti un livello di anonimato consentendo l'accesso alle applicazioni con gli ID iCloud senza condividere informazioni personali.
Il nuovo framework di Servizi Web CloudKit offre una libreria JavaScript (CloudKit JS) che può essere incorporata nel sito Web per fornire l'accesso agli stessi dati e contenuti basati su CloudKit dell'app Xamarin.iOS.
Importante
Prima di poter accedere, presentare o aggiornare il contenuto da un database CloudKit usando CloudKit JS, è necessario aver definito in precedenza lo schema del database.
Per altre informazioni, vedere i documenti seguenti:
- Introduzione a CloudKit: introduzione all'uso di CloudKit in un'app Xamarin.iOS.
- Guida introduttiva a CloudKit: introduzione a CloudKit di Apple.
- Informazioni di riferimento su JS per CloudKit di Apple- Documentazione di CloudKit JS di Apple.
- Catalogo CloudKit: introduzione a CloudKit (Cocoa e JavaScript) - App di esempio di Apple con CloudKit e CloudKit JS.
Importante
Apple fornisce strumenti per aiutare gli sviluppatori a gestire correttamente il Regolamento generale sulla protezione dei dati (GDPR) dell'Unione Europea.
Addizioni di Foundation Framework
Apple includeva le modifiche seguenti al framework Foundation in iOS 9:
Modifiche a NSBundle
Sono state apportate le modifiche seguenti alla classe NSBundle per iOS 9:
GetPreservationPriorityForTag (NSString tag)- Ottiene la priorità di conservazione corrente per le risorse con il tag specificato. I valori validi sono compresi nell'intervallo0.0a1.0, le risorse con la priorità più bassa verranno eliminate per prime.SetPreservationPriorityForTag (double priority, NSSet tags): imposta la priorità di conservazione corrente per le risorse con i tag specificati. I valori validi sono compresi nell'intervallo0.0a1.0, le risorse con la priorità più bassa verranno eliminate per prime.
Per altre informazioni, vedere Il riferimento NSBundle di Apple.
Modifiche a NSProcessInfo
Ogni processo in esecuzione in un dispositivo iOS ha un singolo agente di informazioni di elaborazione (PIA). Usare la classe NSProcessInfo per fornire informazioni sull'attuale pia e sulla gestione termica e del controllo per un determinato processo.
Ad esempio, per controllare la terminazione automatica di un processo, è possibile usare il codice seguente:
// 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);
Per altre informazioni, vedere La guida di riferimento NSProcessInfo di Apple.
Reazione alla modalità a basso consumo
Usare la LowPowerModeEnabled proprietà della classe NSProcessInfo per determinare se la modalità a basso consumo è stata abilitata nel dispositivo iOS in cui è in esecuzione l'app. Ad esempio:
// Is the device in low power mode?
if (NSProcessInfo.ProcessInfo.LowPowerModeEnabled) {
// Reduce activity to conserve energy...
} else {
// Return to normal activity...
}
Modifiche al framework HealthKit
Apple includeva le modifiche seguenti al framework HealthKit in iOS 9:
- Supporto per l'eliminazione in blocco e il rilevamento delle voci nel database HealthKit. Per altre informazioni, vedere HKDeletedObject di Apple, HKAnchoredObjectQuery e HKHealthStore Class Reference (Informazioni di riferimento sulle classi HKDeletedObject, HKAnchoredObjectQuery e HKHealthStore).
- Sono state aggiunte nuove categorie di rilevamento e caratteristiche alla
HKQuantityTypeIdentifierclasse ( ad esempioUVExposure) e allaHKCategoryTypeIdentifierclasse ( ad esempioOvulationTestResult).
Per altre informazioni sull'uso di HealthKit in Xamarin.iOS, vedere la documentazione introduzione a HealthKit .
Modifiche al framework di autenticazione locale
Apple includeva le modifiche seguenti al framework di autenticazione locale in iOS 9:
- Usando i
EvaluateAccessControlmetodi eEvaluatePolicydella classe LAContext , è ora possibile riutilizzare le corrispondenze di Touch ID dai precedenti tentativi di sblocco riusciti. - Possibilità di ottenere un elenco delle dita attualmente registrate.
- Supporto per il rilevamento quando un dito viene aggiunto o rimosso dall'autenticazione.
- La possibilità di usare il contesto di autenticazione nelle chiamate Keychain e il supporto per la valutazione degli elenchi di controllo di accesso Keychain.
- Possibilità di annullare una richiesta dell'utente dal codice.
Per altre informazioni, vedere Touch ID e Face ID con Xamarin.iOS.
Modifiche di LAContext
Sono state apportate le modifiche seguenti alla classe LAContext per iOS 9:
- TouchIdAuthenticationMaximumAllowableReuseDuration : restituisce la quantità massima di tempo in cui è possibile riutilizzare un'autenticazione touch ID.
- EvaluatedPolicyDomainState : ottiene o imposta lo stato di un criterio valutato.
- MaxBiometryFailures : deprecato in iOS 9.
- TouchIdAuthenticationAllowableReuseDuration Ottiene o imposta la quantità di tempo in cui è possibile riutilizzare un'autenticazione touch ID.
- EvaluateAccessControl : valuta in modo asincrono un criterio di autenticazione.
- Invalidate : invalida un'autenticazione di touch ID specificata.
- IsCredentialSet : restituisce
truese le credenziali sono attualmente impostate. - SetCredentialType Imposta il tipo di credenziale specificato.
Per altri dettagli, vedere Le informazioni di riferimento su LAContext di Apple.
Modifiche al framework MapKit
Apple includeva le modifiche seguenti al framework MapKit in iOS 9:
- MapKit offre ora il supporto per l'avvio diretto dell'app Map nelle direzioni di transito e per l'esecuzione di query sul tempo stimato di arrivo (ETA) di transito usando le classi MKLaunchOptions e MKDirections .
- I risultati della ricerca restituiti da MapKit e la classe CLGeocoder possono anche fornire il fuso orario del risultato.
- È ora possibile personalizzare completamente le annotazioni mappa presentate dall'app iOS usando la
DetailCalloutAccessoryViewproprietà della classe MKAnnotationView .
Per altre informazioni, vedere la documentazione di iOS Mappe e Procedura dettagliata - Esplorazione di annotazioni e sovrapposizioni nella documentazione di MapKit per altre informazioni sull'uso di Mappe e annotazioni in Xamarin.iOS e le informazioni di riferimento su CLGeocoder di Apple.
Aggiunte al framework PassKit
Apple includeva le modifiche seguenti al framework PassKit in iOS 9:
- Apple Pay ora supporta sia l'addebito del negozio che le carte di credito insieme alle carte Discover. Per altre informazioni, vedere la sezione Reti di pagamento di PKPaymentRequest Class Reference (Informazioni di riferimento sulle classi PKPaymentRequest) di Apple.
- Dall'interno di un'app Xamarin.iOS è ora possibile aggiungere reti di pagamento ed emittenti di carte ad Apple Pay. Per altri dettagli, vedere Le informazioni di riferimento sulle classi PKAddPaymentPassViewController di Apple.
Per altre informazioni sull'uso di PassKit in Xamarin.iOS, vedere la documentazione introduttiva a PassKit .
Aggiunte al framework di Safari Services
Apple includeva le modifiche seguenti al framework di Safari Services in iOS 9:
- È ora possibile usare la nuova classe SFSafariViewController per visualizzare il contenuto Web all'interno di un'app Xamarin.iOS. Offre la possibilità di condividere i dati e i cookie del sito Web con l'app Safari e include diverse funzionalità di Safari (ad esempio Lettore e Riempimento automatico). SFSafariViewController include un pulsante Fine che restituirà gli utenti all'app al termine della visualizzazione del contenuto Web.
Poiché la classe SFSafariViewController è personalizzata per la visualizzazione di una singola pagina di contenuto Web, è consigliabile usarla per sostituire eventuali controlli WKWebKit o UIWebView all'interno delle app Xamarin.iOS esistenti.
Visualizzazione di un sito Web
Il codice seguente è un esempio di chiamata di SFSafariViewController dall'interno di un altro controller di visualizzazione:
// 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);
Modifiche al framework UIKit
Apple include molti miglioramenti a diversi elementi del framework UIKit per iOS 9. Le sezioni seguenti illustrano in dettaglio tali modifiche.
Eventi di tocco 3D
Novità di iOS 9 e i Telefono 6s e i Telefono 6s Plus, 3D Touch aggiunge gesti sensibili alla pressione alle app iOS. Di conseguenza, se l'app è in esecuzione su iOS 9 (o versione successiva) e il dispositivo iOS è in grado di supportare il tocco 3D, le variazioni di pressione causeranno la generazione dell'evento TouchesMoved .
A causa di questa modifica del comportamento, le app iOS devono essere preparate per richiamare l'evento TouchesMoved più spesso, anche se le coordinate X/Y non sono state modificate.
Per altre informazioni, vedi la guida Introduttiva a 3D Touch .
Funzionalità sul posto documento
Usando i FinishedLaunching (application, launchOptions) metodi o WillFinishLaunching (Application, launchOptions) della classe UIApplicationDelegate , è ora possibile aprire un documento e modificarlo sul posto anziché lavorare su una copia.
Per supportare la nuova funzionalità sul posto, aggiungere la LSSupportsOpeningDocumentsInPlace chiave al file Info.plist dell'app Xamarin.iOS con il valore YES.
Per altri dettagli, vedere l'interfaccia utente di AppleApplicationDelegate Reference (Informazioni di riferimento su UiApplicationDelegate di Apple).
Eventi tocco avanzati
Apple ha fornito diversi miglioramenti agli eventi di tocco in iOS 9. Questi includono la possibilità di usare La stima tocco e di ottenere l'accesso a touch intermedi tra gli aggiornamenti dello schermo.
Per altri dettagli, vedere la Guida alla gestione degli eventi di Apple per iOS .
Recupero di contenuti personalizzati
La nuova NSDataAsset classe consente a un'app Xamarin.iOS di recuperare il contenuto personalizzato in base alle funzionalità di memoria e grafica del dispositivo iOS attualmente in esecuzione.
Nuovi ancoraggi di layout
Le nuove NSLayoutAnchor classi di ancoraggio e NSLayoutDimension layout funzionano con le nuove proprietà di ancoraggio della classe UIView (ad esempio LeadingAnchor e WidthAnchor) per semplificare il layout in iOS 9.
Per altre informazioni, vedere la documentazione introduttiva agli storyboard unificati per altre informazioni sull'uso di classi AutoLayout e Size in un'app Xamarin.iOS e informazioni di riferimento su NSLayoutAnchor di Apple, informazioni di riferimento su NSLayoutDimension e informazioni di riferimento su UIView.
Nuovi margini di contenuto leggibile
La nuova UILayoutGuide classe può essere usata per fornire margini di contenuto leggibile e definire le aree di disegno per il contenuto all'interno di una visualizzazione. Per altre informazioni, vedere UiLayoutGuide reference (Informazioni di riferimento su UILayoutGuide) di Apple.
Input di testo nelle modifiche delle notifiche
La classe UIUserNotificationAction ha una nuova Behavior proprietà che può essere usata per supportare l'input di testo dalle notifiche.
Modifiche di UIApplicationDelegate
Anche se non è formalmente deprecato da Apple, suggerisce di sostituire tutte le chiamate al FinishedLaunching (UIApplication application) metodo della classe UIApplicationDelegate con i FinishedLaunching (UIApplication application, NSDictionary launchOptions) metodi o WillFinishLaunching (UIApplication application, NSDictionary launchOptions) .
Per altri dettagli, vedere l'interfaccia utente di AppleApplicationDelegate Reference (Informazioni di riferimento su UiApplicationDelegate di Apple).
Modifiche di Dynamics UIKit
Apple includeva le modifiche seguenti a UIKit Dynamics in iOS 9:
- Dynamics offre ora il supporto per i limiti di collisione non rettangolari.
- La nuova classe personalizzabile
UIFieldBehaviorviene usata per supportare vari tipi di campo. - Alla classe sono stati aggiunti
UIAttachmentBehavioraltri tipi di allegati.
Per altri dettagli, vedere Le informazioni di riferimento sull'interfaccia utente di Apple.
Modifiche di UIPickerView e UIDatePicker
Prima di iOS 9, i controlli UIPickerView e UIDatePicker non erano ridimensionabili e si ridimensionavano automaticamente per riempire la larghezza del contenitore (in genere la larghezza del dispositivo iOS in cui l'app era in esecuzione).
In iOS 9 questo ridimensionamento automatico non si verifica più e il rendering dei controlli verrà eseguito a 320 punti su tutti i dispositivi iOS, indipendentemente dalle dimensioni e dall'orientamento dello schermo.
Per risolvere questa situazione, usare Classi di layout automatico e dimensioni per aggiungere la larghezza del controllo ai bordi del contenitore padre (visualizzazione) e specificare l'altezza richiesta. Per altre informazioni sull'uso del layout automatico e delle classi di dimensioni in un'app Xamarin.iOS, vedere la documentazione introduzione agli storyboard unificati.
Nuova classe UITextInputAssistantItem
Usare la nuova UITextInputAssistantItem classe per il layout dei gruppi di pulsanti della barra in una barra di scelta rapida. La barra dei tasti di scelta rapida è una nuova area disponibile nella tastiera soft per fornire tasti di scelta rapida.
