È possibile utilizzare un'estensione di azione iOS 8 per inviare un testo selezionato dal browser Safari a un'app installata? Sto pensando a questo workfow: l'utente selezionerebbe un testo in un sito Web> tocca l'icona di condivisione> l'app installata (non solo la finestra di dialogo di condivisione) si apre con il testo selezionato.Invia il testo selezionato da Safari all'app installata tramite iOS 8 Action Extension?
risposta
Poiché tutte le estensioni sono in esecuzione su iPhone come con l'app principale. Puoi usare qualcosa come App Group per condividere le informazioni.
Quindi è necessario abilitare la capacità del gruppo di app in entrambe le destinazioni e condividere le informazioni con UserDefault (suiteName :) o utilizzare la directory del file contenitore condiviso (con contenitore condiviso potrebbe essere necessario il coordinatore di file per fare in modo che 2 processi non utilizzi il file contemporaneamente).
Inoltre, se entrambi i processi sono in esecuzione, è possibile utilizzare la notifica darwin per notificare all'altra che sono state aggiornate nuove informazioni.
Penso che ciò che si tenta di fare è:
- Seleziona il testo sul sito
- Fare clic sul pulsante Condividi nella barra degli strumenti in fondo Safari
- Aprire l'app con il testo selezionato in allegato ad alcuni userInfo dizionario
Purtroppo, penso che non sia possibile. Puoi creare un'estensione per accettare il testo selezionato ma non aprirà l'app completamente anziché solo l'estensione.
Il problema è che non è presente alcuna selezione "Apri in ..." quando si contrassegna il testo in Safari (confrontato ad esempio con "Apri in ..." se si seleziona un file, diciamo l'app Dropbox).
Per quanto riguarda la funzionalità (e, ad essere sincero, non ho scavato troppo a fondo per potermi sbagliare), quando si fa clic sul menu di condivisione in Safari (potrebbe essere quello dal popup nero bolla quando si seleziona il testo o quello dal pulsante in basso sulla barra degli strumenti), genererà un'estensione "una tantum" che consente di eseguire una determinata azione (come inviare la selezione tramite messaggi, e-mail o metterla nelle note). Dopo che l'estensione è stata eseguita, tornerà al punto in cui è stata sparata (ovvero, safari).
Ancora una volta, è diverso da "Apri in ..." per il quale è necessario implementare schemi di url personalizzati per la tua app da ascoltare. Ma questo non funziona con la semplice selezione del testo. Avrebbe bisogno di un vero sistema di URL.
Forse questa domanda aiuta a ottenere una migliore comprensione: iOS Share vs Action App Extension
Riassumendo: cosa si sta cercando è più probabile non è possibile su iOS.
idea possibile: Si potrebbe in qualche modo cercare di aggiungere un pulsante per l'estensione di condivisione che genera uno schema URL personalizzato con il testo selezionato e chiede al sistema per aprire l'URL, ma posso immaginare che questo non funziona davvero
, più una, dovrebbe essere il vincitore –
È necessario attivare NSExtensionActivationSupportsWebURLWithMaxCount per rendere l'estensione disponibile in Safari.
Quando si crea una destinazione di estensione di azione non UI dal modello, viene creato automaticamente un file Action.js.Modificare il file di rinviare il testo selezionato utilizzando
document.getSelection().toString()
Sì in effetti potrebbe funzionare! più una risposta fantastica –