Определить, просматривается ли веб-страница внутри веб-просмотра iOS или Android?

#android #ios #mobile #detect

#Android #iOS #Мобильный #обнаружить

Вопрос:

Я использую Mobile Detect (http://mobiledetect.net /) чтобы проверить, какой браузер используется для моей веб-страницы, но я изо всех сил пытаюсь правильно проверить, просматривается ли страница внутри веб-просмотра iOS или Android.

Доступны следующие параметры, но я просто не могу заставить его работать. Возможно ли это?

 isSafari()
isioS()
isAndroid()
isAndroidOS()
isChrome()
  

и т.д.. (Полный список наhttp://demo.mobiledetect.net /)

Кто-нибудь успешно это сделал? Причина, по которой я хочу это сделать, заключается в том, что на моем веб-сайте есть баннер, который предлагает пользователям загрузить приложение для iOS или Android. Теперь этот бит работает нормально.

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

Спасибо.

Ответ №1:

Для этого вопроса

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

Вам нужно встроить одну переменную GET вместе с URL вашего веб-сайта. Например

 http://www.example.com?isInsideApp=true
  

Затем на стороне сервера получите строку GET и проверьте, является ли это true или что-то еще. Если это так true , то не показывайте рекламу.

Комментарии:

1. Это то, что мы собираемся рассмотреть, если мы не можем получить простое решение выше.

2. Настолько просто, насколько это возможно!

Ответ №2:

Вы пробовали проверять пользовательский агент на стороне сервера?

     <script type="text/javascript">
        function check() {
            if ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) {
                userAgent = 'iOS';
            } else if (navigator.userAgent.match(/Android/i)) {
                userAgent = 'Android';
            }
         }
    </script>
  

Комментарии:

1. Однако это не будет отличать пользователя, просматривающего веб-сайт в Safari или внутри самого приложения. Верно?

2. хм, вы правы, это не дифференцирует браузеры, для этого, я думаю, было бы достаточно добавить дополнительный параметр к ссылке.

Ответ №3:

 function getMobileOS() {
  var userAgent = navigator.userAgent || navigator.vendor || window.opera;

    if (/windows phone/i.test(userAgent)) {
        return "Windows";
    }

    if (/android/i.test(userAgent)) {
        return "Android";
    }


    if (/iPad|iPhone|iPod/.test(userAgent) amp;amp; !window.MSStream) {
        return "iOS";
    }

    return "unknown";
}