Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.06.2018, 05:00
Новичок на форуме
Отправить личное сообщение для andru86 Посмотреть профиль Найти все сообщения от andru86
 
Регистрация: 28.06.2018
Сообщений: 2

Не работают карты Яндекс в android webView
Доброго времени суток!
Я делаю простое веб-приложение на андроид. На одной из страниц сайта, который используется в приложении есть встроенная Яндекс карта.
На устройствах с Андроид 4 и ниже, карта не отображается. Опытным путем выяснил, что не срабатывает событие ymaps.ready, в которое передается функция init, создающая экземпляр карты. Если вызвать функцию init по таймауту, то возникает ошибка "Uncaught TypeError: undefined is not a function" в строке
myMap = new ymaps.Map
то есть приложение не видит объект ymaps, хотя библиотека яндекс загружается. Пробовал загружать библиотеку яндекс на свой сервер - тот же результат. Все нужные разрешения в приложении выставлены. setJavaScriptEnabled = true. В андроид 6 и выше карты отображаются. В чем может быть дело?
Ниже код подключения карты:
var myMap;

// Дождёмся загрузки API и готовности DOM.
ymaps.ready(init);
setTimeout(init, 5000);
function init () {
    alert('init');
    // Создание экземпляра карты и его привязка к контейнеру с
    // заданным id ("map").
    myMap = new ymaps.Map('map', {
        // При инициализации карты обязательно нужно указать
        // её центр и коэффициент масштабирования.
        center: [55.76, 37.64], // Москва
        zoom: 10
    }, {
        searchControlProvider: 'yandex#search'
    });

    document.getElementById('destroyButton').onclick = function () {
        // Для уничтожения используется метод destroy.
        myMap.destroy();
    };

}

<!DOCTYPE html>

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Примеры. Размещение карты на странице.</title>
    <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
    <script src="custom.js" type="text/javascript"></script>
  <style>
        body, html {
            padding: 0;
            margin: 0;
            width: 100%;
            height: 100%;
        }
        #map {
            width: 100%;
            height: 90%;
        }
    </style>
</head>

<body>
<div id="map"></div>
<input type="button" id="destroyButton" value="Удалить карту"/>
</body>

</html>
Ответить с цитированием
  #2 (permalink)  
Старый 28.06.2018, 13:23
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Просто для посмотреть
<!DOCTYPE html>

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Примеры. Размещение карты на странице.</title>
    <script src="https://api-maps.yandex.ru/2.1.59/?lang=ru_RU" type="text/javascript"></script>
    <script  type="text/javascript">
var myMap;
alert(JSON.stringify(navigator.userAgent));
// Дождёмся загрузки API и готовности DOM.
ymaps.ready(init);
// setTimeout(init, 5000);
function init () {
    alert('init');
    // Создание экземпляра карты и его привязка к контейнеру с
    // заданным id ("map").
    myMap = new ymaps.Map('map', {
        // При инициализации карты обязательно нужно указать
        // её центр и коэффициент масштабирования.
        center: [55.76, 37.64], // Москва
        zoom: 10
    }, {
        searchControlProvider: 'yandex#search'
    });

    document.getElementById('destroyButton').onclick = function () {
        // Для уничтожения используется метод destroy.
        myMap.destroy();
    };

}
    </script>
  <style>
        body, html {
            padding: 0;
            margin: 0;
            width: 100%;
            height: 100%;
        }
        #map {
            width: 100%;
            height: 90%;
        }
    </style>
</head>

<body>
<div id="map"></div>
<input type="button" id="destroyButton" value="Удалить карту"/>
</body>

</html>

Последний раз редактировалось Dilettante_Pro, 29.06.2018 в 15:10.
Ответить с цитированием
  #3 (permalink)  
Старый 28.06.2018, 13:44
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

На смартфоне с Андроид 5 в Хроме работает, в штатном браузере - нет.
Что такое штатный браузер - ????
Может, по ошибке предлагать ставить Хром?

Последний раз редактировалось Dilettante_Pro, 28.06.2018 в 14:44.
Ответить с цитированием
  #4 (permalink)  
Старый 29.06.2018, 10:48
Аватар для xShift
Профессор
Отправить личное сообщение для xShift Посмотреть профиль Найти все сообщения от xShift
 
Регистрация: 22.11.2016
Сообщений: 212

Типа на Андроид больше нет встроенного браузера вроде как. У меня с последней прошивкой на MIUI от XIAOMI есть только Chrome.
Ответить с цитированием
  #5 (permalink)  
Старый 29.06.2018, 10:52
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

xShift,
Речь как раз о проблемах со старым Андроидом, где есть штатный браузер.
Ответить с цитированием
  #6 (permalink)  
Старый 29.06.2018, 14:28
Новичок на форуме
Отправить личное сообщение для andru86 Посмотреть профиль Найти все сообщения от andru86
 
Регистрация: 28.06.2018
Сообщений: 2

Спасибо всем за ответы! Я спрашивал про отображение в компоненте webView приложения. Вопрос решился заменой яндекс API версии 2.1 на 2.1.oldie.1
Ответить с цитированием
  #7 (permalink)  
Старый 29.06.2018, 15:16
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

andru86,
Штатному браузеру Андроид 5 не помогло - см. пост 2.

Последний раз редактировалось Dilettante_Pro, 29.06.2018 в 15:24.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставить в див - js-код яндекс карты rodiony4 Элементы интерфейса 6 30.05.2017 00:47
Яндекс карты получение адреса с помощью координат ACzur Events/DOM/Window 1 17.03.2017 13:19
Добавление яндекс карты в подгружаемом блоке kaspers Элементы интерфейса 0 24.06.2016 17:54
Фильтр для яндекс карты. mo0n Общие вопросы Javascript 3 20.05.2016 18:05
Яндекс Карты с метками vasyakrn Элементы интерфейса 0 21.06.2015 20:28