iOS 11 - обратная ссылка открытия автономного веб-приложения по умолчанию отменена?(Обработка отображения PDF в веб-приложении.) - PullRequest
0 голосов
/ 06 июня 2018

Было много трафика о запрете открытия ссылки в автономном веб-приложении в мобильном Safari, но версии для iOS были намного раньше (7-9?).В iOS 11 у меня возникает противоположная проблема: в моем автономном веб-приложении у меня есть ссылки на файлы PDF, которые необходимо отобразить.Когда я нажимаю на них, они открываются в браузере веб-приложений, а не в Safari, независимо от того, какие параметры я предоставил.Из-за автономного режима результатом является тупик в веб-приложении, требующий перезапуска приложения.(Кажется, что Android делает правильные вещи и передает приложение для просмотра PDF.)

Обработчик кликов (javascript / bootstrap / jquery):

function openDocument(docURL) {
    window.open(docURL,'_blank');
    return false;
}

В качестве альтернативы можно включитьнавигация внутри веб-приложения для новой страницы, чтобы я мог избежать тупика?(Я думаю, что нет из того, что я читаю; я пробовал некоторые опции для window.open безрезультатно.) Или возможно как-то собрать (многостраничный) просмотрщик PDF и элемент пользовательского интерфейса для увольнения?Предложения приветствуются.

РЕДАКТИРОВАТЬ: обобщая обсуждение ниже, iOS по-разному обрабатывает внутренние и внешние ссылки в автономных веб-приложениях.Если сделать ссылки внешними, перераспределение на стороне сервера позволит ссылке открыть Safari.

1 Ответ

0 голосов
/ 06 июня 2018

HВведите iFrame или DIV на свою страницу и загрузите PDF-файл внутри этого компонента.Имейте верхнюю кнопку iFrame, чтобы избежать тупика.

<iframe src="https://example.com/mypdf.pdf"
   width="match your parent element" height="match your parent element" >

Здесь вы можете увидеть еще одну опцию embed PDF.

Обновление: если вы откроете PDF-форму в другом домене или субдомене, она будетоткрываться в отдельном окне даже в iOS.Скажите, что ваш URL-адрес PWA https://www.example.com/myapp, и если вы в настоящее время обращаетесь к pdf из "https://www.example.com/myapp/pdf/mypdf.pdf",, установите псевдоним для этого URL, например" https://www.pdf.example.com/myapp/mypdf.pdf".

Если домен илиИзменения в суб-домене в PWA будут рассматриваться как внешняя ссылка и всегда будут открываться в новом окне, а не внутри приложения, ведущего в тупик.Вы можете попробовать это, если CSS-хаки не достаточно хороши.

...