Condividi tramite


Modifiche aggiuntive ai framework iOS 9

Questo articolo illustra altre modifiche o miglioramenti secondari ai framework esistenti per iOS 9.

Logo 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 AVPlayer controller 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:

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'intervallo 0.0 a 1.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'intervallo 0.0 a 1.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:

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 EvaluateAccessControl metodi e EvaluatePolicy della 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 true se 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 DetailCalloutAccessoryView proprietà 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 UIFieldBehavior viene usata per supportare vari tipi di campo.
  • Alla classe sono stati aggiunti UIAttachmentBehavior altri 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.