У меня возникли проблемы с отображением карт на двух реальных телефонах Android: один работает под управлением 2.2.2 и один работает 4.2.2. Последний всегда испытывал некоторое горе, когда речь заходит о картах. Я поместил это в другой поток here, так как я его частично решил.Phonegap Сборка: белый список Google Map Домены для API v3
Примечание: я использую Phonegap Build с Dreamweaver CS6. Просто config.xml без манифеста XML-файла.
Теперь у меня есть еще одна проблема в том, что мне нужно перечислить все домены, чтобы карта правильно функционировала в 4.2.2, и я не знаю почему. Изначально у меня было это в моем config.xml:
<access origin="*.googleapis.com" />
<access origin="*.gstatic.com" />
<access origin="*.google.com" />
<access origin="maps.googleapis.com" />
<access origin="maps.gstatic.com" />
<access origin="mt0.googleapis.com" />
<access origin="mt1.googleapis.com" />
<access origin="csi.gstatic.com" />
Хотя это работало отлично для Android 2.2.2 я бы следующие вопросы по 4.2.2:
- Дно карте отсутствует последний ряд плиток (если использовать HTTPS для карт ЦСИ Google)
- Маркеры не отображаются на всех
по только белый список все, все эти проблемы исчезли. Однако я не хочу, чтобы все белые списки, так что кто-нибудь знает, если я что-то упустил?
Любая помощь очень ценится.
EDIT: Я понимаю, что с помощью * .googleapis.com я бы также включил оставшиеся домены в белом списке, которые похожи. Однако я несколько раз заметил в своих поисках, что iOS требует, чтобы домены отображались явно. Хотя на данный момент это может быть неприменимо, я намереваюсь, чтобы это приложение использовалось на iOS, поэтому я его оставил (если кто-то не может сказать мне, что он совершенно бесполезен и не нужен ;-).
//////// ОБНОВЛЕНИЕ 1 ////////
После заливки через вкладку сети на инструментах разработчика Chrome, я извлек все URL-адреса, к которым обращается карты Google , Явно с указанием каждого из них, все работает нормально, как так:
<access origin="https://mts.googleapis.com" subdomains="true"/>
<access origin="https://mts0.googleapis.com" subdomains="true"/>
<access origin="https://mts1.googleapis.com" subdomains="true"/>
<access origin="https://maps.googleapis.com" subdomains="true"/>
<access origin="https://fonts.googleapis.com" subdomains="true"/>
<access origin="https://maps.gstatic.com" subdomains="true"/>
<access origin="https://csi.gstatic.com" subdomains="true"/>
<access origin="https://themes.googleusercontent.com" subdomains="true"/>
Это, вероятно, могут быть изменены таким образом, было бы хорошо, если бы я мог просто использовать метасимволы * перед каждой из областей, но это делает не работа. Я попробовал оба следующих с без успеха:
<access origin="*.googleapis.com" subdomains="true"/>
<access origin="*.gstatic.com" subdomains="true"/>
<access origin="*.googleusercontent.com" subdomains="true"/>
<access origin="https://*.googleapis.com" subdomains="true"/>
<access origin="https://*.gstatic.com" subdomains="true"/>
<access origin="https://*.googleusercontent.com" subdomains="true"/>
Кто-нибудь есть какие-либо идеи относительно того, почему я не могу использовать подстановочные знаки в этих случаях? Cheers.
//////// UPDATE 2/ОТВЕТ ////////
После долгих экспериментов я нашел ответ. Похоже, вы должны быть очень конкретными в том, как вы пишете теги в файле config.xml, особенно когда речь идет о разрешении субдоменов - очевидно, что поддомены не работают с подстановочными знаками, поэтому вам нужны два блока тегов. Я, наконец, оба устройства работают правильно, используя протокол HTTPS, используя следующие:
<access origin="*.google.com" />
<access origin="*.googleapis.com" />
<access origin="*.gstatic.com" />
<access origin="*.googleusercontent.com" />
<access origin="google.com" subdomains="true"/>
<access origin="googleapis.com" subdomains="true"/>
<access origin="gstatic.com" subdomains="true"/>
<access origin="googleusercontent.com" subdomains="true"/>
Надеемся, что это будет полезным для кого-то.Я до сих пор не понимаю, почему он отлично работал на старой версии Android. Может быть, кто-то может помочь просветить меня, если они так себя чувствуют?