Клуб API Карт

31 комментарий
После обновления, выдается ошибка `ymaps.Map is not constructor` :-(
Алексей,
где? ссылка?
dimik,
https://pixelmart.ru/cart/submit/client


Алексей,
я вижу у вас карту на странице контактов
dimik,


Проблема с инитом карты решилась оборачиванием в DOMReady

Но появилась новая ошибка :-)


Uncaught TypeError: ymaps.ObjectManager is not a constructor
at _drawMap (postamatMap.js?v=1499326116:82)
at Object.renderMap (postamatMap.js?v=1499326116:208)
at order.js?v=1499326116:230
at y (api-maps.yandex.ru/2.0-stable/?load=package.map&lang=ru-RU&_=1499336170528:9)
at Object.C.d.ready (api-maps.yandex.ru/2.0-stable/?load=package.map&lang=ru-RU&_=1499336170528:9)
at Object.success (order.js?v=1499326116:229)
at j (jquery-1.11.1.min.js:2)
at Object.fireWith [as resolveWith] (jquery-1.11.1.min.js:2)
at x (jquery-1.11.1.min.js:4)
at XMLHttpRequest.b (jquery-1.11.1.min.js:4)


Объект ymaps есть, но ObjectManager в нем нету
dimik,
На странице контактов используется карта созданная в конструкторе карт, на странице что я прилагал выше мы собираем карту в ручную
Алексей,
меня со страницы https://pixelmart.ru/cart/submit/client редиректит на главную.
Оборачивать в DOMready не надо.
Надо обернуть в ymaps.ready
Все обращения к классам АПИ должны осуществляться внутри обработчика ymaps.ready


https://tech.yandex.ru/maps/doc/jsapi/2.1/dg/concepts/load-docpage/#api-ready
dimik,
Чтобы не редиректило, надо хотя бы один товар в корзину кинуть

Вот кусок кода в котором ломается
https://pastebin.com/eazPDx0b

Делается все там согласно доке
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/ObjectManager-docpage/#add

Данная реализация работала более полугода, вчера вечером обнаружили багу
Алексей,
у вас там 2 апи зачем-то подключается одно с турецкой локалью )), второе с русской
dimik,
Ну это мы уже заметили и пофиксили:-)
Но вот к сожалению ошибка остается :-(
Алексей,
пока я всё еще вижу 2 подключения
Василий Ефанов
7 июля 2017, 08:52
dimik,
Да, это просто на ночь глядя не обновляли.
Сейчас апи карт подключается один раз.
Но ошибка остаётся. Почему-то подтягивается версия 2.0-stable при выполнении http://clip2net.com/s/3LWoZTN
Василий Ефанов,
https://cdn.callbackkiller.com/widget/cbk.js?wcb_code=2961bf74ed2414f9099840051e4c27c9


$.getScript("https://api-maps.yandex.ru/2.0-stable/?load=package.map&lang=ru-RU").done(function(script,textStatus){ymaps.ready(function(){_this.loadSettings(ymaps);});})
dimik,
Спасибо !
Василий Ефанов
7 июля 2017, 14:13
dimik,
точно! отключили и всё нормик.
большое спасибо, а то мы уже голову сломали.
После обновления API перестали работать карты в WKWebView (iOS, xcode). При замены ссылки "https://api-maps.yandex.ru/2.1/?lang=ru_RU" на "https://api-maps.yandex.ru/2.1.50/?lang=ru_RU" все работает как прежде
Обновлено 6 июля 2017, 12:20
mari-na-bzzz
Сотрудник Яндекса6 июля 2017, 14:29
maksn,
спасибо за сообщение, прямо сейчас занимаемся этой проблемой
mari-na-bzzz
Сотрудник Яндекса6 июля 2017, 14:38
maksn,
скажите пожалуйста, не подменяете ли вы случайно user agent?
mari-na-bzzz,
нет, ничего такого я не делаю. В WKWebView не запускаются даже самые простые примеры (https://tech.yandex.ru/maps/jsbox/2.1/polyline)
mari-na-bzzz
Сотрудник Яндекса8 июля 2017, 13:50
maksn,
Мы нашли, в чем проблема. Но нам надо убедиться, что мы все для всех починим. Поэтому, если возможно, пришлите нам пожалуйста свой userAgent, который используется в приложении
mari-na-bzzz,
я не использую никакого userAgent. По крайней мере явно я его не задаю нигде. Частью моего iOS  приложения является WKWebView, который умеет открывать html файлы с подключенными java Script. Для простоты и минимизации моих ошибок будем локальные index.html и polyline.js, взятые из ваших примеров (https://tech.yandex.ru/maps/jsbox/2.1/polyline). Если подгружать API карт по ссылке "https://api-maps.yandex.ru/2.1/?lang=ru_RU" - ничего не работает. Карта не создается. Если же использовать ссылку на старую версию API "https://api-maps.yandex.ru/2.1.50/?lang=ru_RU" - все работает как и до перехода на новую версию API. 
mari-na-bzzz
Сотрудник Яндекса8 июля 2017, 17:21
maksn,
можете на страницу в webView добавить вот такой вывод
alert(navigator.userAgent);

и прислать, что там выведется?
mari-na-bzzz,
Да, конечно. Вот:
"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Mobile/14E8301"



Еще наблюдения.  WKWebView, естественно, открывает не только локальные html. При загрузке страницы с примером https://tech.yandex.ru/maps/jsbox/2.1/polyline область карты пустая! Хотя при этом страница https://yandex.ru/maps/ грузится нормально.
mari-na-bzzz
Сотрудник Яндекса9 июля 2017, 00:31
maksn,
спасибо) yandex.ru/maps просто используют версию апи меньше 2.1.52
Добрый день!
Продолжу тему. На iOS  просто перестали грузиться карты в WKWebView в работающем приложении (ничего не менялось).
В дебаге отловил такую ошибку http://joxi.net/KAxelkJIMBzwOr.jpg
Обновлено 7 июля 2017, 06:30
arcocg,
Карты вставлялись так
<script src="https://api-maps.yandex.ru/2.1.5/?lang=ru_RU" type="text/javascript"></script>
Если поменять на 2.1.50, как указано выше, то все нормально грузится.
<script src="https://api-maps.yandex.ru/2.1.50/?lang=ru_RU" type="text/javascript"></script>
Обновлено 7 июля 2017, 06:37
mari-na-bzzz
Сотрудник Яндекса8 июля 2017, 13:51
arcocg,
Ваша информация очень помогла, большое спасибо) Мы нашли, в чем проблема. Но нам надо убедиться, что мы все для всех починим. Поэтому, если возможно, пришлите нам пожалуйста userAgent, который используется в приложении
mari-na-bzzz,
Здравствуйте! Еще обращу ваше внимание, что в этой версии видимо по той же причине в ios перестал работать встроенный в приложение facebook браузер, причем похоже в разных версиях. Пример useragent:
Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) Mobile/14F89 [FBAN/FBIOS;FBAV/100.0.0.43.70;FBBV/64200226;FBDV/iPhone5,3;FBMD/iPhone;FBSN/iOS;FBSV/10.3.2;FBSS/2;FBCR/Tele2;FBID/phone;FBLC/en_GB;FBOP/5;FBRV/0]
mari-na-bzzz
Сотрудник Яндекса10 июля 2017, 15:34
Biomancer,
да, это все одно и то же, завтра ожидаем релиз с исправлениями
mari-na-bzzz,
Добрый день, сегодня проверил для <script src="https://api-maps.yandex.ru/2.1.5/?lang=ru_RU" type="text/javascript"></script> – все работает. 
UA был примерно такой как указал Biomancer.
User-Agent Mozilla/5.0 (iPhone; CPU iPhone OS 9_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13E233
mari-na-bzzz
Сотрудник Яндекса12 июля 2017, 13:24
arcocg,
да, мы вчера выкатили хотфикс)