Non riesco a ottenere collegamenti mailto per aprire l'app Mail da Mobile Safari quando utilizzo jQTouch.Cosa potrebbe esserci di sbagliato?

StackOverflow https://stackoverflow.com/questions/2317431

  •  22-09-2019
  •  | 
  •  

Domanda

Sto sviluppando un'app Web per iPhone utilizzando jQTouch, e contiene un semplice mailto: collegarsi a un indirizzo e-mail valido, che dovrebbe avviare l'applicazione di posta dell'iPhone quando viene toccato, ma non è così.

Se visito una pagina web "normale" in Mobile Safari che contiene esattamente lo stesso collegamento e la tocco, ottengo il risultato previsto:l'app di posta viene visualizzata con l'indirizzo email corretto nel campo A.

Ecco il collegamento HTML (con l'indirizzo modificato) nel caso in cui fossi impazzito e avessi commesso uno stupido errore, ma sembra perfettamente a posto:

<p><a href="mailto:info@mycompany.com">info@mycompany.com</a></p>

Qualcuno ha riscontrato questo problema durante l'utilizzo di jQTouch?O qualcuno può almeno suggerire un modo per eseguire il debug di questo?Nel momento in cui tocco il collegamento non funzionante, lampeggia in rosso (lo stato del collegamento attivo) e non succede assolutamente nient'altro.

È stato utile?

Soluzione 2

Guardai di nuovo il codice di esempio nel pacchetto demo jQTouch e ho visto che stavano aggiungendo un attributo target="_blank" per il loro collegamento e-mail.

L'ho fatto per il mio link, ed è cominciato a lavorare (spuntando la finestra del client di posta). Tuttavia, il collegamento che è in una pagina web standard funziona bene, ma senza l'attributo target="_blank" ...

Sono perplesso, ma aggiungendo che l'attributo sembra risolvere questo problema se la pagina cellulare sta usando jQTouch.

Altri suggerimenti

Ho trovato che l'aggiunta di target="_blank" ai collegamenti lavorato - tranne che su alcuni browser desktop, ha aperto una nuova finestra vuota e ha aperto la finestra e-mail. Certo, i siti jQTouch non sono in genere sta per essere visualizzati su browser desktop, ma non ero appassionato di quel comportamento.

su Invece, ecco cosa che ho fatto:

  • mettere il link mailto: in caso onclick e false ritorno aggiunto (in modo effettivo collegamento per # non si attiva)
  • Aggiunta una classe noHighlight al link

Ecco un esempio:

<a href="#" onclick="window.location='mailto:email@domain.com'; return false;" class="noHighlight">Email me</a>

Ho poi modificato il CSS nel file tema.

Prima:

ul li a.active {
   background: #194fdb url(img/selection.png) 0 0 repeat-x;
   color: #fff;
}

Dopo:

ul li a.active:not(.noHighlight) {
   background: #194fdb url(img/selection.png) 0 0 repeat-x;
   color: #fff;
}

La ragione per cui ho aggiunto la classe noHighlight è che senza di essa, il pulsante otterrebbe evidenziato e avrebbe "bastone", che ha reso il tasto sembrare come se fosse ancora in uno stato attivo. Per aggirare il problema, ho aggiunto la classe e modificato il CSS come sopra descritto.

Quello che il cambiamento CSS fa è che se il link (all'interno di un li che si trova all'interno di un ul) ha il noHighlight di classe, NON cambiare il colore di sfondo o del testo.

Sembra funzionare grande ora in poi sia desktop e browser mobili.

Questo non è legato alla jQTouch, ma mailto:. Collegamenti non funzionavano neanche per me e fissare loro, tutto quello che dovevo fare era aggiungere barre dopo i due punti

mailto://info@mycompany.com

è venuta l'idea di fare questo qui: http: //mobiledevelopertips.com/cocoa/launching-other-apps-within-an-iphone-application.html. Stranamente, collegamenti telefonici ha funzionato bene per me senza le barre.

Funziona bene solo con target="_blank".

Per quelli (come me) che trovano fastidioso visualizzare il popup "Si aprirà in una nuova pagina" ogni volta che si tocca una mailto O tel link puoi farlo:

Modifica jqtouch.js e vai alla riga 284:

if ($el.attr('target') == '_blank' || $el.attr('rel') == 'external')

Ora sostituisci questa riga con:

if ($el.attr('target') == '_self' || $el.attr('target') == '_blank' || $el.attr('rel') == 'external')

E sull'HTML (ad esempio):

<a href="tel:+351912345678">Call me</a>

diventa

<a target="_self" href="tel:+351912345678">Call me</a>

Eccellente trovare, sto facendo la stessa cosa e non riuscivo a capire il motivo per cui fino a poco tempo. Se si guarda la linea tutto l'161 e 284 in jqtouch.js rev 109 si vede che l'attributo target "_blank" manterrà jQTouch dal dirottamento del evento click. Si sta intercettando l'evento perché questo è il meccanismo principale per spostarsi da una pagina all'altra.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top