Ich kann nicht Mailto-Links den Mail-App von Mobile Safari zu öffnen, wenn jQTouch verwenden. Was könnte falsch sein?

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

  •  22-09-2019
  •  | 
  •  

Frage

Ich entwickle eine iPhone Web-App mit jQTouch , und es enthält einen einfachen mailto: Link zu einem gültigen E-Mail-Adresse, die die iPhone Mail-Anwendung starten soll, wenn angezapften aber es funktioniert nicht.

Wenn ich eine „normale“ Webseite in Mobile Safari besuchen, die genau die gleiche Verbindung enthält, und tippen Sie darauf erhalte ich das erwartete Ergebnis: Die Mail-App öffnet sich mit der richtigen E-Mail-Adresse in das Feld oben

Hier ist der Link HTML (mit der Adresse geändert) nur für den Fall ich verrückt werde und habe einen dummen Fehler gemacht, aber es scheint völlig in Ordnung:

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

Hat jemand über diese kommen, wenn jQTouch mit? Oder kann jemand zumindest einen Weg vorschlagen, dass ich das Debuggen kann? Im Moment, als ich den nicht funktionierenden Link tippen blinkt es rot (den aktiven Link-Zustand) und absolut nichts anderes passiert.

War es hilfreich?

Lösung 2

Ich sah wieder auf dem Beispielcode in dem jQTouch Demo-Paket und sieht, dass sie ein target="_blank" Attribut auf ihren E-Mail-Link wurden hinzugefügt.

Ich tat dies, um meine Verbindung, und es begann Arbeit (knallte die E-Mail-Client-Fenster nach oben). Allerdings funktioniert der Link, dass die in einer Standard-Web-Seite als gut, aber ohne das Attribut target="_blank" ...

Ich bin verwirrt, aber das Hinzufügen dieses Attributs scheint dieses Problem zu lösen, wenn Ihr Mobil Seite wird jQTouch verwendet wird.

Andere Tipps

Ich fand, dass das Hinzufügen target="_blank" zu den Links gearbeitet - außer, dass auf einigen Desktop-Browser, es ein neues leeres Fenster geöffnet und die E-Mail-Fenster geöffnet. Zugegeben, sind jQTouch Websites auf Desktop-Browser gehen werden normalerweise nicht gesehen, aber ich war dieses Verhalten nicht gern.

Stattdessen ist hier, was ich getan habe:

  • Setzen Sie den mailto: Link in dem onclick Ereignisse und hinzugefügt Rückkehr false (so tatsächlich Link zu # nicht Feuer)
  • eine noHighlight Klasse auf den Link hinzugefügt

Hier ist ein Beispiel:

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

ich dann die CSS in der Design-Datei geändert.

Bevor:

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

Nach:

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

Der Grund, warum ich die noHighlight Klasse hinzugefügt ist, dass ohne sie würde die Schaltfläche hervorgehoben bekommen und würde „Stick“, die auf den Button Look gemacht, wie es noch in einigem aktiven Zustand war. Um das zu umgehen das Problem, habe ich die Klasse und modifiziert, um die CSS, wie oben beschrieben.

Was die CSS Änderung tut, ist, dass, wenn die Verbindung (innerhalb eines li, die im Innern eines ul ist), um die Klasse noHighlight hat, wird es nicht die Hintergrund- oder Textfarbe zu ändern.

scheint zu funktionieren groß jetzt auf Desktop- und mobilen Browser.

Dies ist nicht auf jQTouch verwendet, aber mailto: Links nicht für uns arbeiten entweder und sie zu beheben, alles, was ich hatte, war, add Schrägstriche nach dem Doppelpunkt

.

mailto://info@mycompany.com

Haben Sie die Idee, dies zu tun hier: http: //mobiledevelopertips.com/cocoa/launching-other-apps-within-an-iphone-application.html . Merkwürdigerweise Telefonverbindungen funktionierten gut für mich ohne die Schrägstriche.

Es funktioniert nur mit target = "_ blank".

Für diejenigen (wie mich), die es lästig finden, um das Popup-Sie auf Tippen Sie jedes Mal „Dies in einer neuen Seite öffnen“ mailto oder tel link Sie können dies tun:

Bearbeiten jqtouch.js und gehen Sie auf Linie 284:

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

Jetzt diese Zeile ersetzen durch:

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

Und auf der HTML (z.):

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

wird

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

Excellent find, mache ich die gleiche Sache und konnte nicht verstehen, warum bis vor kurzem. Wenn Sie runde Linie 161 und 284 in jqtouch.js sehen rev 109 Sie sehen, dass das Zielattribut „_blank“ wird von Hijacking Ihre Click-Ereignis halten jQTouch. Es ist das Abfangen des Ereignisses, weil das der primäre Mechanismus von Seite zu Seite zu bewegen ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top