12

jQTouchを使用して iPhone Web アプリを開発しています。これには有効な電子メール アドレスへの単純なmailto:リンクが含まれており、タップすると iPhone メール アプリケーションが起動しますが、起動しません。

Mobile Safari でまったく同じリンクを含む「通常の」Web ページにアクセスしてタップすると、期待どおりの結果が得られます。メール アプリがポップアップし、正しいメール アドレスが [宛先] フィールドに表示されます。

気が狂ってばかげた間違いを犯した場合に備えて、リンク HTML (アドレスが変更されています) を次に示しますが、完全に問題ないように見えます。

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

jQTouch を使用しているときに、これに遭遇した人はいますか? または、少なくともこれをデバッグできる方法を誰かが提案できますか? 動作していないリンクをタップすると、赤く点滅し (アクティブなリンク状態)、他に何も起こりません。

4

5 に答える 5

7

リンクへの追加が機能することがわかりましたtarget="_blank"-一部のデスクトップブラウザーでは、新しい空白のウィンドウが開き、電子メールウィンドウが開きました. 確かに、jqtouch サイトは通常、デスクトップ ブラウザーでは表示されませんが、私はその動作が好きではありませんでした。

代わりに、これが私がしたことです:

  • リンクmailto:onclickイベントに配置し、リターンを追加しますfalse(そのため、実際のリンクは起動し#ません)
  • noHighlightリンクにクラスを追加しました

次に例を示します。

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

次に、テーマ ファイルの CSS を変更しました。

前:

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

後:

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

クラスを追加した理由は、noHighlightクラスを追加しないと、ボタンが強調表示されて「固定」され、ボタンがまだアクティブな状態にあるように見えるためです。この問題を回避するために、クラスを追加し、上記のように CSS を変更しました。

CSS の変更によって行われることは、リンク ( a のli内部にある a の内部ul) に classnoHighlightがある場合、背景やテキストの色は変更されないということです。

現在、デスクトップ ブラウザーとモバイル ブラウザーの両方でうまく機能しているようです。

于 2010-09-08T22:20:22.260 に答える
6

jQTouch デモ パッケージのサンプル コードをもう一度見てみるとtarget="_blank"、電子メール リンクに属性が追加されていることがわかりました。

リンクに対してこれを行ったところ、機能し始めました(メールクライアントウィンドウがポップアップします)。ただし、標準の Web ページにあるリンクも同様に機能しますが、属性がありません...target="_blank"

戸惑いましたが、モバイル ページで jQTouch を使用している場合、その属性を追加するとこの問題が解決するようです。

于 2010-02-23T15:08:01.847 に答える
2

target="_blank" だけで問題なく動作します。

mailtoまたはtelリンクをタップするたびに「This will open in a new page」というポップアップが表示されるのが面倒な人 (私のような) には、次のようにします。

jqtouch.js を編集し、284 行目に移動します。

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

この行を次のように置き換えます。

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

そしてHTML上(例):

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

になる

<a target="_self" href="tel:+351912345678">Call me</a>
于 2010-10-09T18:07:31.837 に答える
1

素晴らしい発見、私は同じことをしていて、最近まで理由を理解できませんでした。jqtouch.js rev 109の161行目と284行目を見ると、ターゲット属性「_Blank」によってjqtouchがクリックイベントを乗っ取られないことがわかります。これは、ページ間を移動するための主要なメカニズムであるため、イベントをインターセプトしています。

于 2010-06-11T03:36:58.453 に答える
1

これは jQTouch とは関係ありませんが、mailto: リンクも機能しませんでした。修正するには、コロンの後にスラッシュを追加するだけで済みました。

mailto://info@mycompany.com

ここでこれを行うというアイデアを得ました: http://mobiledevelopertips.com/cocoa/launching-other-apps-within-an-iphone-application.html。奇妙なことに、電話リンクはスラッシュなしで問題なく機能しました。

于 2012-06-19T22:34:38.797 に答える