web-dev-qa-db-ja.com

GmailアプリがMailto Bodyに等しいサインインを取り除く

メールの本文に現在のURLを入力するmailtoリンクを作成しようとしています。私が抱えている問題は、Gmail Androidアプリが%3Dを含む等号を取り除くことです

これが私が使っているコードです。

$currentUrl = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$_SERVER['HTTP_Host']}{$_SERVER['REQUEST_URI']}";
$currentUrl = str_replace('&', '%26', $currentUrl);
$currentUrl = str_replace('=', '%3D', $currentUrl);

<a href='mailto:?subject=".$emailsubject."&body=".$currentUrl."' class='actions'>Click to Send</a>

Hrefの例

<a href='mailto:?subject=12/12/2019 2L36 Brighton to Lewes&body=https://live.rail-record.co.uk/train/?c%3DW26711%26d%3D12/12/2019' class='actions'>Create Email</a>

デスクトップでは、正常に動作します。モバイルでは、クエリ文字列が途切れ、等号がメール本文に含まれません。

等号をGmailアプリに取得する方法について、誰かがお手伝いできますか?ありがとう。

Mailto本文の例には、次のようなリンクが含まれます。 https://live.rail-record.co.uk/train/?c=H17216&d=11/12/2019 に挿入されたURLただし、電子メールの本文は?c-最初の等号の後に切り捨てられます。デスクトップメールアプリでは問題なく機能しますが、Gmail Androidでは機能しません。上記のリンクについては、下部に「Create Email」と書かれたビットがあり、それをクリックしてテストできます。

7
trainmania100

Android URLエンコーディングでは不十分です。URLをダブルエンコードする必要があります。URLは正常に機能します(自分で解決します)。

ここでそれをjsで行う方法を見ることができます: javascriptでencodeURIComponentをダブルする方法?

1
Androidz