Ошибка при использовании ссылки mailto: в Mobile Safari в режиме приложения - PullRequest
5 голосов
/ 22 декабря 2009

У меня есть форма на веб-странице с действием «mailto: email» (где электронная почта является реальным адресом электронной почты). Когда я загружаю эту страницу в Mobile Safari в обычном режиме (т.е. не запускается с главного экрана в режиме с поддержкой приложений), это работает нормально - после отправки формы появляется приложение электронной почты. Однако, когда я нахожусь в режиме с поддержкой приложений и запустился с главного экрана (то есть без Safari chrome) и отправил форму, я получаю сообщение об ошибке «URL не может быть показан». Однако обычная ссылка mailto: (т.е. не в форме) работает в режиме с поддержкой приложения.

Кто-нибудь еще заметил это? Есть обходные пути? Запрещены ли формы в режиме с поддержкой приложений?

Спасибо

Элизабет

Ответы [ 4 ]

3 голосов
/ 18 марта 2010

Это точно описывает проблему. В ссылке mailto нет ничего плохого, ссылка mailto не загружается. Часто веб-приложение вылетает.

Самое смешное, что тел: ссылка для телефонных номеров работает нормально.

window.location.replace фактически работает. Спасибо!

Вот jQuery, чтобы исправить это автоматически ...

$('a[href^=mailto]').click(function (event) {
    event.preventDefault();
    window.location.replace = $(this).attr('href');
    return false;
});
0 голосов
/ 20 марта 2015

Вот обходной путь, который не зависит от JQuery:

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

Обновление: Чтобы запустить этот код из букмарклета, нужно подождать примерно 1000 ms, прежде чем панель закладок закроется и браузер будет готов ответить. Я понял это, обернув код в setTimeout функцию.

0 голосов
/ 28 января 2010

У меня точно такая же проблема с ссылками mailto, не работающими в режиме с поддержкой Интернета. Я только что закончил, отправив отчет об ошибке в Apple. Посмотрим, что получится, а пока я нашел другого разработчика. Платформа для веб-приложений, которая работает в веб-режиме и работает с почтовыми ссылками, но забавно, как она работает в этом даже - она ​​не такая гибкая, как в Safari Потому что даже в этом новом инструменте для веб-разработки, который я нашел, он закрывает ваше приложение и запускает почтовый клиент, который не работает. В Safari он просто скользит в почтовом окне, которое выдвигается обратно, если вы нажмете «Отмена» или «Отправить» - на самом деле оно не закрывает ваше приложение.

0 голосов
/ 24 декабря 2009

Я думаю, я понял это. Я заметил, что в режиме с поддержкой приложений любая http-ссылка выведет вас из приложения и откроет отдельное окно мобильного сафари, перейдет на страницу и покажет хром Safari. Имеет смысл (как правило, никто не будет ссылаться на что-либо из веб-приложения, поддерживающего приложение «все в одном»). Я заметил это, потому что я реализовал четырехстраничное приложение со своей «панелью вкладок» внизу и связывалось между html-файлы с простыми ссылками http в элементе a. Когда я заменяю это функцией javascript для загрузки страниц с использованием document.location.replace, этого не происходит.

Итак, в форме - я думаю, что должно происходить, потому что я использую схему (в данном случае, mailto :), так или иначе, необходим браузер в «обычном режиме», чтобы интерпретировать схему и сделать правильное вещь, запустив приложение электронной почты, и это явно не работает при отправке формы. Я еще ничего не нашел в документации Apple по этому поводу, поэтому, если кто-то знает технические детали, пожалуйста, пишите!

ОБНОВЛЕНИЕ: я обнаружил, что могу получить доступ к сценарию на стороне сервера, используя форму в режиме веб-приложения, поэтому мне все еще интересно узнать о проблеме mailto: если у кого-то есть ответ.

Спасибо

Элизабет

...