Ricerca…


Osservazioni

Documentazione Apple utile con esempi e chiarimenti.

Aprire un'app basata sul suo schema URL

Per aprire un'app con schema URL definito todolist:// :

Objective-C

NSURL *myURL = [NSURL URLWithString:@"todolist://there/is/something/to/do"];
[[UIApplication sharedApplication] openURL:myURL];

veloce

let stringURL = "todolist://there/is/something/to/do"
if let url = NSURL(string: stringURL) {
    UIApplication.shared().openURL(url)
}

HTML

<a href="todolist://there/is/something/to/do">New SMS Message</a>

Nota: è utile verificare se il collegamento può essere aperto per visualizzare altrimenti un messaggio appropriato all'utente. Questo può essere fatto usando canOpenURL: method.

Aggiunta di uno schema URL alla tua app

Supponiamo che tu stia lavorando su un'app chiamata MyTasks e desideri consentire agli URL in entrata di creare una nuova attività con un titolo e un corpo. L'URL che stai progettando potrebbe essere simile a questo:

mytasks://create?title=hello&body=world

(Naturalmente, i parametri del text e del body sono usati per popolare il nostro compito che stiamo creando!)

Ecco i grandi passaggi per aggiungere questo schema URL al tuo progetto:

  1. Registra uno schema URL nel file Info.plist della tua app, in modo che il sistema sappia quando indirizzare un URL alla tua app.
  2. Aggiungi una funzione al tuo UIApplicationDelegate che accetta e gestisce gli URL in arrivo.
  3. Esegui qualsiasi attività che deve essere eseguita quando viene aperto quell'URL.

Fase uno: registrare uno schema URL in Info.plist:

Per prima cosa, dobbiamo aggiungere una voce "Tipi di URL" al nostro file Info.plist. Fai clic sul pulsante (+) qui: aggiungendo una nuova riga a Info.plist

... quindi inserisci un identificativo univoco per la tua app, nonché lo schema URL che desideri utilizzare. Sii specifico! Non vuoi che lo schema URL sia in conflitto con l'implementazione di un'altra app. Meglio essere troppo lungo qui che troppo breve! compilando la voce dei tipi di URL in Info.plist

Passaggio 2: gestire l'URL in UIApplicationDelegate

Dobbiamo implementare l' application:openURL:options: sul nostro UIApplicationDelegate . Ispezioneremo l' URL arrivo e vediamo se c'è un'azione da intraprendere!

Un'implementazione sarebbe questa:

func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
    if url.scheme == "mytasks" && url.host == "create" {
        let title = // get the title out of the URL's query using a method of your choice
        let body = // get the title out of the URL's query using a method of your choice
        self.rootViewController.createTaskWithTitle(title, body: body)
        return true
    }

    return false
}

Passaggio 3: eseguire un'attività in base all'URL.

Quando un utente apre la tua app tramite un URL, probabilmente si aspettava che succedesse qualcosa . Forse sta navigando verso un contenuto, forse sta creando un nuovo elemento: in questo esempio, creeremo una nuova attività nell'app!

Nel codice sopra, possiamo vedere una chiamata a self.rootViewController.createTaskWithTitle(:body:) - così, supponendo che il tuo AppDelegate abbia un puntatore al suo controller di visualizzazione radice che implementa correttamente la funzione, sei pronto!

La configurazione del deep linking per la tua app è semplice. Basta un piccolo url con cui vuoi aprire la tua app.

Segui i passaggi per configurare il deep-linking per la tua app.

  1. Consente di creare un progetto e denominarlo DeepLinkPOC.

  2. Ora seleziona il tuo obiettivo di progetto.

  3. Dopo aver selezionato il bersaglio, seleziona la scheda "Informazioni".

  4. Scorri verso il basso fino a quando non vedi un'opzione di Tipi di URL

  5. Fai clic sull'opzione "+".

  6. Vedrai che gli schemi URL aggiungono una stringa tramite la quale vuoi aprire l'app. Aggiunge " DeepLinking " negli schemi URL.

Quindi, per aprire la tua app puoi avviarla digitando "DeepLinking: //" nel tuo safari. La tua stringa di deep-linking ha il seguente formato.

[scheme]://[host]/[path]  --> DeepLinking://path/Page1

dove, Scheme: Host "DeepLinking": percorso "percorso": "Pagina1"

Nota : anche se non aggiungere l'host e il percorso, verrà avviata l'app, quindi non preoccuparti. È possibile aggiungere host e percorso per reindirizzare ulteriormente a una determinata pagina dopo l'avvio dell'applicazione.

  1. Ora aggiungi il seguente metodo al tuo accountdelegate.

Swift:

 func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool 

Objective-C:

-(BOOL)application:(UIApplication *)application
          openURL:(NSURL *)url
          sourceApplication:(NSString *)sourceApplication
          annotation:(id)annotation

Il metodo precedente viene chiamato ogni volta che la tua app viene avviata utilizzando una stringa di deep linking impostata per la tua app.

  1. Ora è il momento di installare la tua app, ma attendi prima di saltare direttamente al pulsante di esecuzione. Effettua un piccolo cambiamento nel metodo di avvio dell'app dello schema.
  • Seleziona e modifica il tuo schema come

inserisci la descrizione dell'immagine qui

  • cambia il suo tipo di avvio e chiudi inserisci la descrizione dell'immagine qui
  1. Ora fai clic sul pulsante Esegui (se vuoi, puoi aggiungere breakpoint ai tuoi metodi didFinishLaunchingWithOptions e openURL per osservare i valori)

  2. Verrà visualizzato un messaggio "In attesa di DeepLinkPOC (o il nome della tua app) da avviare".

  3. Apri Safari e digita " DeepLinking: // " nella barra di ricerca per visualizzare il prompt "apri questa pagina in DeepLinkPOC" fai clic su Apri per avviare la tua app.

Spero che tu sappia come impostare il deep-linking per la tua app :)



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow