Condividi tramite


Eseguire ricerche con markup Web in Xamarin.iOS

Per le app che forniscono l'accesso al contenuto tramite un sito Web (non solo dall'interno dell'app), il contenuto Web può essere contrassegnato con collegamenti speciali che verranno sottoposti a ricerca per indicizzazione da Apple e forniscono collegamenti diretti all'app nel dispositivo iOS 9 dell'utente.

Se l'app iOS supporta già il deep linking per dispositivi mobili e il sito Web ha presentato collegamenti diretti al contenuto all'interno dell'app , il crawler Web Applebot indicizza questo contenuto e lo aggiunge automaticamente all'indice cloud:

Panoramica di Cloud Index

Apple visualizzerà questi risultati in Spotlight Search e Safari Search results(Risultati ricerca in evidenza e Ricerca Safari). Se l'utente tocca uno di questi risultati (e ha installato l'app), verrà visualizzato il contenuto nella tua app:

Deep linking da un sito Web nei risultati della ricerca

Abilitazione dell'indicizzazione del contenuto Web

Sono necessari quattro passaggi per rendere possibile la ricerca dei contenuti dell'app tramite markup Web:

  1. Assicurarsi che Apple possa individuare e indicizzare il sito Web dell'app definendolo come sito Web di supporto o marketing in iTunes Connessione.
  2. Assicurarsi che il sito Web dell'app contenga il markup necessario per implementare il deep linking per dispositivi mobili. Per altri dettagli, vedere le sezioni seguenti.
  3. Abilitare la gestione dei collegamenti diretti nell'app iOS.
  4. Aggiungere markup per i dati strutturati visualizzati dal sito Web dell'app per offrire un risultato ricco e coinvolgente per l'utente finale. Anche se questo passaggio non è strettamente richiesto, è altamente consigliato da Apple.

Le sezioni seguenti illustrano in dettaglio questi passaggi.

Rendere individuabile il sito Web dell'app

Il modo più semplice per fare in modo che Apple trovi il sito Web della tua app consiste nell'usarlo come sito Web di supporto o marketing quando invii la tua app ad Apple tramite iTunes Connessione.

Uso di banner per app intelligenti

Fornire un banner per l'app intelligente nel sito Web per presentare un collegamento chiaro all'app. Se l'app non è già installata, Safari richiederà automaticamente all'utente di installare l'app. In caso contrario, l'uso può toccare il collegamento di visualizzazione per avviare l'app dal sito Web. Ad esempio, per creare un banner per l'app intelligente, è possibile usare il codice seguente:

<meta name="AppName" content="app-id=123456, app-argument=http://company.com/AppName">

Per altre informazioni, vedere la documentazione relativa all'innalzamento di livello delle app di Apple con banner per le app intelligenti.

Novità di iOS 9, i collegamenti universali offrono un'alternativa migliore ai banner di Smart App o agli schemi URL personalizzati esistenti fornendo quanto segue:

  • Univoco : lo stesso URL non può essere richiesto da più siti Web.
  • Sicuro : è necessario un certificato firmato per il sito Web che garantisce che il sito Web sia di proprietà dell'utente e collegato in modo valido all'app.
  • Flessibile: l'utente finale può controllare se l'URL avvia il sito Web o l'app.
  • Universale : lo stesso URL può essere usato per definire sia il sito Web che il contenuto dell'app.

Uso delle schede Twitter

Puoi fornire collegamenti diretti al contenuto dell'app usando una scheda Twitter. Ad esempio:

<meta name="twitter:app:name:iphone" content="AppName">
<meta name="twitter:app:id:iphone" content="AppNameID">
<meta name="twitter:app:url:iphone" content="AppNameURL">

Per altre informazioni, vedere la documentazione di Twitter Card Protocol .

Puoi fornire collegamenti diretti al contenuto della tua app usando un collegamento all'app Facebook. Ad esempio:

<meta property="al:ios:app_name" content="AppName">
<meta property="al:ios:app_store_id" content="AppNameID">
<meta property="al:ios:url" content="AppNameURL">

Per altre informazioni, vedere la documentazione dei collegamenti alle app di Facebook.

È necessario aggiungere il supporto per l'apertura e la visualizzazione di collegamenti diretti nell'app Xamarin.iOS. Modificare il file AppDelegate.cs ed eseguire l'override del OpenURL metodo per gestire il formato url personalizzato. Ad esempio:

public override bool OpenUrl (UIApplication application, NSUrl url, string sourceApplication, NSObject annotation)
{

  // Handling a URL in the form http://company.com/appname/?123
  try {
    var components = new NSUrlComponents(url,true);
    var path = components.Path;
    var query = components.Query;

    // Is this a known format?
    if (path == "/appname") {
      // Display the view controller for the content
      // specified in query (123)
      return ContentViewController.LoadContent(query);
    }
  } catch {
    // Ignore issue for now
  }

  return false;
}

Nel codice precedente si sta cercando un URL contenente /appname e passando il valore di query (123 in questo esempio) a un controller di visualizzazione personalizzato nell'app per visualizzare il contenuto richiesto all'utente.

Fornire risultati avanzati con dati strutturati

Includendo Structured Data Markup è possibile fornire risultati di ricerca avanzati all'utente finale che vanno oltre semplicemente un titolo e una descrizione. Includere immagini, dati specifici dell'app (ad esempio valutazioni) e azioni ai risultati usando Structured Data Markup.

I risultati avanzati sono più coinvolgenti e possono contribuire a migliorare la classificazione nell'indice di ricerca basato sul cloud, consentendo a più utenti di interagire con loro.

Un'opzione per fornire markup di dati strutturati consiste nell'usare Open Graph. Ad esempio:

<meta property="og:image" content="http://company.com/appname/icon.jpg">
<meta property="og:audio" content="http://company.com/appname/theme.m4a">
<meta property="og:video" content="http://company.com/appname/tutorial.mp4">

Per altre informazioni, vedere il sito Web Open Graph .

Un altro formato comune per Il markup di dati strutturati è il formato microdata di schema.org. Ad esempio:

<div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
  <span itemprop="ratingValue">4** stars -
  <span itemprop="reviewCount">255** reviews

Le stesse informazioni possono essere rappresentate nel formato JSON-LD di schema.org:

<script type="application/ld+json">
  "@content":"http://schema.org",
  "@type":"AggregateRating",
  "ratingValue":"4",
  "reviewCount":"255"
</script>

Di seguito è riportato un esempio di metadati del sito Web che fornisce risultati di ricerca avanzati all'utente finale:

Risultati avanzati della ricerca tramite Structured Data Markup

Apple supporta attualmente i tipi di schema seguenti da schema.org:

  • AggregateRating
  • ImageObject
  • InteractionCount
  • Offerte
  • Organizzazione
  • PriceRange
  • Ricetta
  • SearchAction

Per altre informazioni su questi tipi di schema, vedere schema.org.

Fornire azioni con dati strutturati

Tipi specifici di dati strutturati consentiranno a un risultato di ricerca di essere utilizzabile dall'utente finale. Attualmente sono supportate le azioni seguenti:

  • Composizione di un numero di telefono.
  • Ottenere la direzione della mappa a un determinato indirizzo.
  • Riproduzione di un file audio o video.

Ad esempio, la definizione di un'azione per comporre un numero di telefono potrebbe essere simile alla seguente:

<div itemscope itemtype="http://schema.org/Organization">
  <span itemprop="telephone">(408) 555-1212**

Quando questo risultato della ricerca viene presentato all'utente finale, nel risultato verrà visualizzata un'icona del telefono di piccole dimensioni. Se l'utente tocca l'icona, verrà chiamato il numero specificato.

Il codice HTML seguente aggiunge un'azione per riprodurre un file audio dal risultato della ricerca:

<div itemscope itemtype="http://schema.org/AudioObject">
  <span itemprop="contentUrl">http://company.com/appname/greeting.m4a**

Infine, il codice HTML seguente aggiunge un'azione per ottenere indicazioni dal risultato della ricerca:

<div itemscope itemtype="http://schema.org/PostalAddress">
  <span itemprop="streetAddress">1 Infinite Loop**
  <span itemprop="addressLocality">Cupertino**
  <span itemprop="addressRegion">CA**
  <span itemprop="postalCode">95014**

Per altre informazioni, vedere il sito per sviluppatori di Ricerca app di Apple.