Проблема с отображением различного контента на iOS - PullRequest
0 голосов
/ 11 апреля 2020

Через 2 дня я схожу с ума, потому что не могу решить это. Моя проблема заключается в следующем: 1.) Я пытаюсь использовать javascript для целевого устройства iOS (независимо от того, является ли браузер Chrome для Apple, Safari, Firefox для Apple и c ...) для показать другой элемент DOM в стихах не iOS браузеров. 2.) Мой код обнаружения iOS выглядит следующим образом, который я видел в нескольких других потоках: // Обнаруживает, включено ли устройство iOS

const isIos = () => {
        const userAgent = window.navigator.userAgent.toLowerCase();
        return /iphone|ipad|ipod/.test( userAgent );
    }

3.) После выполнения этой проверки я пытаюсь выполнить следующее как в Safari, так и в Chrome на iOS "мой путь, который я предполагаю, неверен, поскольку не работает лол! :

if(!isIos()) {
                setTimeout(function() {
                    console.log('showing non iOS banner prompt after delay');
                }, 10000);
            } else if (isIos()) {
                setTimeout(function() {
                    console.log('showing iOS banner prompt after delay');
                }, 10000);
            }

4.) Правильный журнал показывается через chrome dev-инструменты на моем windows ноутбуке при выборе устройства iOS (которое, я знаю, не является действительным iOS enviroment), но независимо от того, что я делаю, после загрузки на действующий сайт ВСЕГДА показывает журнал не Ios на моем iPad.

1 Ответ

0 голосов
/ 11 апреля 2020

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

||
(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)

const isIos = () => {
        const userAgent = window.navigator.userAgent.toLowerCase();
        return /iphone|ipad|ipod/.test( userAgent ) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);
    }
...