5

Web ページに「mailto:email」(email は実際のメール アドレス) というアクションを含むフォームがあります。Mobile Safari でこのページを通常モード (つまり、アプリ対応モードでホーム画面から起動しない) で読み込むと、これは正常に機能します。フォームを送信すると、メール アプリが表示されます。ただし、アプリ対応モードでホーム画面から起動し (つまり、Safari クロムはありません)、フォームを送信すると、「URL を表示できません」というエラーが表示されます。ただし、通常の mailto: リンク (つまり、フォームではない)、アプリ対応モードでは機能します。

他の誰かがこれに気づきましたか?回避策はありますか?アプリ対応モードではフォームは許可されていませんか?

ありがとう、

エリザベス

4

4 に答える 4

3

これは問題を正確に説明しています。mailto リンクに問題はありません。mailto リンクの読み込みに失敗します。多くの場合、Web アプリケーションがクラッシュします。

面白いことに、電話番号の tel: リンクは正常に機能します。

window.location.replace は実際に機能します。ありがとう!

これを自動的に修正するjQueryは次のとおりです...

$('a[href^=mailto]').click(function (event) {
    event.preventDefault();
    window.location.replace = $(this).attr('href');
    return false;
});
于 2010-03-18T15:28:20.580 に答える
0

mailtoリンクがWeb対応モードで機能しないというまったく同じ問題が発生しています。Appleにバグレポートを提出し終えたところです。何が起こるか見てみましょう、その間に私は別の開発者を見つけました。Web対応モードで動作するWebアプリ用のプラットフォームとmailtoリンクは動作しますが、これでも動作するのはおかしいです。Safariの場合ほど流動的ではありません。私が見つけたこの新しいWeb開発ツールでも、アプリを閉じてメールクライアントを起動するためです。Safariでは、メールウィンドウをスライドするだけで、キャンセルまたは送信を押すとスライドして元に戻ります。実際にはアプリは閉じません。

于 2010-01-27T22:43:16.080 に答える
0

私はこれを理解したと思います。アプリ対応モードでは、http リンクでアプリが終了し、別のモバイル サファリ ウィンドウが起動し、ページに移動して Safari クロムが表示されることに気付きました。理にかなっています (通常、「オールインワン」アプリ対応の Web アプリからは何にもリンクしません。下部に独自の「タブ バー」を備えた 4 ページのアプリを実装し、. a要素にプレーンなhttpリンクを含むhtmlファイル.これをjavascript関数に置き換えて、document.location.replaceを使用してページをロードすると、これは起こりません.

したがって、フォームでは、スキーム(この場合はmailto :)を使用しているため、何らかの形でブラウザが「通常モード」でスキームを解釈し、起動して正しいことを行う必要があるため、何が起こっているに違いないと思いますかフォームを送信するとき、これは明らかに機能しません。Apple のドキュメントにはこれに関する具体的な情報はまだ見つかっていないので、技術的な詳細を知っている人は投稿してください。

更新: web-app モードでフォームを使用してサーバー側スクリプトにアクセスできることがわかったので、誰かが答えを持っていれば、mailto: の問題にまだ興味があります。

ありがとう、

エリザベス

于 2009-12-23T21:53:42.387 に答える
0

JQuery に依存しない回避策を次に示します。

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

更新:ブックマークレットからこのコードを実行する1000 msには、ブックマーク ベゼルが閉じられ、ブラウザが応答できるようになるまでしばらく待つ必要があります。コードをsetTimeout関数でラップすることでこれを実現しました。

于 2015-03-20T16:01:37.067 に答える