Errore durante l'utilizzo di mailto:collegamento in Mobile Safari in modalità con funzionalità app

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

Domanda

Ho un modulo in una pagina Web con un'azione "mailto:email" (dove email è un vero indirizzo email).Quando carico questa pagina in Mobile Safari in modalità normale (ovvero, non avviato dalla schermata iniziale con modalità compatibile con l'app), funziona correttamente: dopo aver inviato il modulo, viene visualizzata l'app di posta elettronica.Tuttavia, quando sono in modalità con funzionalità app e l'ho avviato dalla schermata principale (quindi, senza Safari Chrome) e invio il modulo, ricevo l'errore "L'URL non può essere mostrato".Tuttavia, un mailto regolare:collegamento (ovvero, non in un modulo) fa funzionare in modalità con funzionalità app.

Qualcun altro ha notato questo?Qualche soluzione alternativa?I moduli non sono consentiti nella modalità compatibile con le app?

Grazie,

Elisabetta

È stato utile?

Soluzione

Questa descrive accuratamente il problema. Non c'è niente di sbagliato con il link mailto, il link mailto non riesce a caricare. Spesso i crash webapp.

La cosa divertente è che Tel: collegamento per i numeri telefonici funzionano bene

.

window.location.replace funziona in realtà. Grazie!

Ecco il jQuery per risolvere questo problema automaticamente ...

$('a[href^=mailto]').click(function (event) {
    event.preventDefault();
    window.location.replace = $(this).attr('href');
    return false;
});

Altri suggerimenti

Penso di averlo capito.Ho notato che in modalità compatibile con l'app, qualsiasi collegamento http ti porterà fuori dall'app e avvierà una finestra Safari mobile separata, ti porterà alla pagina e mostrerà Safari Chrome.Ha senso (in genere non ci si collegherebbe a nulla da un'app Web compatibile con app "tutto in uno").L'ho notato perché ho implementato un'app di 4 pagine con la mia "barra delle schede" in basso e mi collegavo tra i file .html con semplici collegamenti http nell'elemento a.Quando lo sostituisco con una funzione javascript per caricare le pagine utilizzando document.location.replace, ciò non accade.

Quindi, sul modulo, penso che ciò che deve accadere è che, poiché sto utilizzando uno schema (in questo caso, mailto :), in qualche modo il browser è necessario in "modalità normale" per interpretare lo schema e fare la cosa giusta avviandolo l'app di posta elettronica e questo chiaramente non funziona quando si invia un modulo.Non ho ancora trovato nulla nella documentazione Apple specificatamente a riguardo, quindi se qualcuno conosce i dettagli tecnici, per favore li pubblichi!

AGGIORNAMENTO:Ho scoperto che posso accedere a uno script lato server utilizzando un modulo in modalità app Web, quindi sono ancora curioso riguardo al mailto:problema, se qualcuno ha una risposta.

Grazie,

Elisabetta

Sto avendo lo stesso problema esatto con link mailto non funziona nella modalità in grado web. Ho appena fatto la presentazione di una segnalazione di bug ad Apple. Vediamo cosa succede, nel frattempo ho trovato un altro dev. piattaforma per applicazioni web che funziona in modalità capaci web e link mailto lavoro, ma è divertente come funziona in questo ancora - non è così fluido come in Safari. Perché anche in questo nuovo strumento web dev che ho trovato, si chiude la vostra applicazione e lancia client di posta elettronica, che è zoppo. In Safari appena scivola in una finestra posta che scivola di nuovo se si ha colpito annullare o inviare -. In realtà non chiudere l'app

Ecco una soluzione che non dipende da JQuery:

aTmp = document.createElement("a");
aTmp.href="mailto:example@example.com?subject=Test&body=Hello.";
aTmp.click();

Aggiornamento: Per eseguire questo codice da un bookmarklet si deve attendere circa 1000 ms prima della lunetta segnalibri si chiude e il browser è pronto a rispondere. Ho realizzato questo avvolgendo il codice in una funzione setTimeout.

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