Прямое открытие мессенджеров по ссылке из приложения Apache Cordova

Просмотров: 924

Задача: При клике по ссылкам на Telegram и WhatsApp в мобильном приложении необходимо сразу открывать мессенджеры без промежуточного открытия системного браузера.

Прямое открытие мессенджеров по ссылке из мобильного приложения Apache Cordova

Если просто разместить ссылку на нужный мессенджер в мобильном приложении, то при клике на нее она откроется в системном браузере телефона или планшета. Пользователь должен будет согласиться на открытие мессенджера, после чего откроется нужный чат.

Для того, чтобы избежать открытия мессенджера в системном браузере и сразу запустить его, необходимо добавить следующие строки в файл конфигурации приложения (config.xml):

<allow-intent href="tg://*/*" />
<allow-intent href="whatsapp://*/*" />

Добавление ссылок на мессенджеры, в зависимости от платформы

На iOS есть особенность, заключающаяся в том, что ссылка на нужный чат в WhatsApp отличается от ссылки для Android. Поэтому для этого мессенджера необходимо проверять платформу и использовать соответствующую ссылку.

Для реализации данной функциональности необходимо создать две кнопки с соответствующими ID и добавить небольшой JavaScript-скрипт, который будет реагировать на нажатия кнопок и открывать соответствующий мессенджер, сразу открывая чат с пользователем.


<button id="open_tg_chat">Открыть Telegram </button>
<button id="open_wa_chat">Открыть WhatsApp </button>

<script>
    document.addEventListener("deviceready", onDeviceReady, false);

    function onDeviceReady() {

        // Telegram ======================================================
        document.getElementById("open_tg_chat").onclick = function () {
            function openTelegramChat(username) {
                var url = "tg://resolve?domain=" + username;
                var target = "_system";
                var options = "location=yes";
                window.open(url, target, options);
            }
            openTelegramChat("ВАШ_ФААКАУНТ_В_ТЕЛЕГЕ");
        }

        // Whatsapp ======================================================
        var devicePlatform = device.platform;
        if (devicePlatform === 'Android') {
            document.getElementById("open_wa_chat").onclick = function () {
                function sendWhatsAppMessage(number, message) {
                    window.location.href = "whatsapp://send?phone=" + number + "&text=" + message;
                }
                sendWhatsAppMessage("+7911_ВАШ_НОМЕР");  // Замените на нужный номер телефона
            }
        } else {
            document.getElementById("open_wa_chat").onclick = function () {
                function sendWhatsAppMessage(number, message) {
                    window.location.href = "whatsapp://send?abid=" + number + "&text=" + message;
                }
                sendWhatsAppMessage("+7911_ВАШ_НОМЕР");  // Замените на нужный номер телефона
            }
        }

    }
</script>
Если вы хотите перенаправлять пользователей в разные чаты в Telegram, то проверку платформы можно также делать и для ссылок на этот мессенджер. Это может быть полезно для сегментации пользователей.

Теперь, при нажатии на кнопку с мессенджером, не будет открываться системный браузер, а сразу произойдет переход в нужное приложение.

Михаил Базаров 03.04.2023
Таким же образом, добавляя нужные схемы в config.xml, можно открывать любые другие приложения на телефоне пользователя