Как заставить ссылки, отправленные по электронной почте, открываться в браузере пользователя, а не в браузере приложения Gmail - PullRequest
4 голосов
/ 13 июля 2020

У меня есть веб-сайт, который JavaScript -тяжелый и требует, чтобы пользователь записывал свои видео.Когда я отправляю свои электронные письма своим клиентам, ссылка открывается в браузере приложения gmail, из которого вы не можете записывать, Плюс отсутствует множество функций .

Как вызвать всплывающее окно, когда пользователь щелкает ссылки в электронном письме, чтобы выбрать любой браузер, который он хочет, вместо встроенного в приложение Gmail? Я видел, как некоторые люди поступали так, как я пытался, и провел некоторые исследования, но безрезультатно.

Ответы [ 2 ]

4 голосов
/ 19 июля 2020

По умолчанию веб-браузеры не могут открыть браузер соперника. Это было бы угрозой безопасности. Существуют хаки, при которых пользователь загружает надстройку или расширение. См. Ответ в stackoverflow.com / questions / 10070744 / open- ie -browser-in- firefox - chrome -page

Всплывающее окно, о котором вы говорите, скорее всего приложения. Пользователь должен предоставить разрешение. ( Это у меня нет опыта работы с ).

Похоже, что нет способа программно заставить электронные письма на Android открываться в Chrome браузере. Пользователь должен изменить свои системные настройки. Следовательно, альтернативный подход может заключаться в информировании пользователя (о потере функциональности). Это можно сделать, предварительно настроив прослушивание браузером и отобразив соответствующее сообщение в верхней части веб-страницы.

С помощью JavaScript вы можете проверить, поддерживается ли функция и включена, путем создания функций. Ниже приведен пример, который определяет, доступен ли LocalStorage. ( Это только в целях иллюстрации ).

function isLocalStorageEnabled(){
    var test = 'test';
    try {
        localStorage.setItem(test, test);
        localStorage.removeItem(test);
        return true;
    } catch(e) {
        return false;
    }
}

if(isLocalStorageEnabled() === true){
    // available
}else{
    // unavailable
}

Также я считаю, что не существует единого способа определить, использует ли пользователь встроенный браузер Gmails или Chrome. Однако, исходя из следующих факторов, вы можете предположить, что они используют Gmail, если:

  • Пользователь щелкнул ссылку электронной почты. (Вы можете добавить строку запроса. При переходе на сайт сохранить в сеансе и перенаправить без добавления строки запроса).
  • Пользователь включен android (/Android/.test(window.navigator.userAgent)).
  • Пользователь включен Chrome (см. Ответ stackoverflow.com / questions / 4565112 / javascript -how-to-find-if-the-user-browser-is-chrome / 13348618 # 13348618 ).
  • Веб-браузер не поддерживает какую-то функцию JavaScript, которая работает в Chrome, но не в браузере Gmails.

Если все критерии верны, вы можете затем отобразите сообщение типа: For full functionality, please use Chrome or alternatively in Gmail: Go to Settings, General, and uncheck the option to open links in gmail (and reopen link from Gmail).

Примечание: обнаружение браузера может быть подделано. Однако этого должно хватить для отображения сообщений.

0 голосов
/ 22 июля 2020

Возможность отправки ссылок в Gmail (или любом приложении) WebView в системный обработчик зарезервирована для самого приложения.

Реализация для приложений описана здесь:

WKWebView открывает ссылки из определенного домена в safari

Ссылка WebView щелкните открыть браузер по умолчанию

Однако, если вы дадите указание получателю долго нажимать ссылку в электронной почте, есть возможность открыть ссылку в браузере, и они перейдут в браузер по умолчанию.

...