Разница между элементами управления картой в приложении Xamarin map? - PullRequest
0 голосов
/ 27 января 2019

Я новичок в Xamarin Forms и пытаюсь понять, как все работает.

Я скачал и запустил приложение карт по этой ссылке Xamarin, работающей с Картами .Он отлично работает в эмуляторе Android.Сейчас я пытаюсь понять, как работает код.

Это первый экран, который я вижу при отладке приложения.Это обычные Карты Google, к которым я привык:

enter image description here

Когда я нажимаю последнюю вкладку, это то, что я вижу:

enter image description here

Отображается предупреждение «1021 *». «Эти кнопки выходят из текущего приложения и открывают встроенное приложение« Карты »для платформы» .Когда я нажимаю ОТКРЫТЬ МЕСТОПОЛОЖЕНИЕ С ИСПОЛЬЗОВАНИЕМ ВСТРОЕННОГО КАРТЫ , я вижу другую карту Google, аналогичную первой карте Google, которую я видел: enter image description here

Из чегоНасколько я понимаю, первая карта отображается в Xamarin.Forms, а вторая карта из проекта Android.

Два вопроса:

  • Относительно конкретной функциональности этого приложения(в частности, Android и Xamarin.Forms). Есть ли разница между первой картой и последней картой?

  • Последняя карта имеет небольшую вкладку внизу, которая отображает информацию на булавке(т.е. "394 Pacific Ave, Сан-Франциско, Калифорния 94111, США").Может ли эта вкладка popup быть создана в Xamarin.Forms или это возможно только в проекте Android?

1 Ответ

0 голосов
/ 27 января 2019

Относительно определенной функциональности этого приложения (в частности, Android и Xamarin.Forms), есть ли разница между первой картой и последней картой?>

Да, они разныеОдна - это встроенная карта в вашем приложении, а другая - совершенно другое приложение.На Android последняя страница карты просит Android запустить Uri, который начинается со значения схемы geo:.

geo:0,0?q=394+Pacific+Ave+San+Francisco+CA

Оттуда ОС Android будет искать все установленные приложения, поддерживающие эту geo: схема.Как правило, на большинстве образов Android предварительно установлены Google Карты, и, если это единственная опора geo:, программа запускает это приложение напрямую, в противном случае вам будет предложено выбрать приложение для отображения.Теперь вы находитесь во внешнем приложении, и ваше приложение Xamarin.Forms больше не работает (пока вы не нажмете кнопку «Назад», закрыв это приложение и вернувшись в приложение Forms).

~~~
if (Device.RuntimePlatform == Device.iOS) {
    //https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html
    Device.OpenUri(new Uri("http://maps.apple.com/?q=394+Pacific+Ave+San+Francisco+CA"));
} else if (Device.RuntimePlatform == Device.Android) {
    // opens the Maps app directly
    Device.OpenUri(new Uri("geo:0,0?q=394+Pacific+Ave+San+Francisco+CA"));
} else if (Device.RuntimePlatform == Device.UWP) {
    Device.OpenUri(new Uri("bingmaps:?where=394 Pacific Ave San Francisco CA"));
}
~~~

последняя карта имеет небольшую вкладку внизу, которая отображает информацию о булавке (например, «394 Pacific Ave, Сан-Франциско, Калифорния 94111, США»).Можно ли создать эту всплывающую вкладку в Xamarin.Forms или это можно реализовать только в проекте Android?

Вы можете создать нечто подобное с помощью виджетов Xamarin.Forms.Просто зависит от ваших требований.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...