В UWP нет встроенного API карт JavaScript. Однако вы можете использовать элемент управления Bing Maps V8. Как вы знаете, приложения на базе JavaScript, основанные на ОС Windows, которые не используют WebView/WebBrowser, ограничивают использование внешних файлов JavaScript. Существует два пути.
Первый заключается в размещении кода вашей карты внутри iframe. Это прекрасно работает, если функциональность вашей карты полностью включена, и вам не нужно программно вносить изменения в карту из основного приложения (маловероятно). Приложения UWP не позволят вам общаться между вашим основным приложением и кодом JavaScript в iframe.
Во-вторых, чтобы изменить, как вы ссылаетесь на стартовую страницу в своем приложении и вместо использования локального контекста, используйте веб-контекст. Для этого откройте файл package.appxmanifest и добавьте «ms-appx-web: ///» до значения начальной страницы. Вероятно, ms-appx-web: ///index.html. Это может ограничить ваше приложение от использования некоторых функций нижнего уровня в приложениях UWP на основе JavaScript, таких как доступ к файловой системе.
В обоих этих сценариев, а также сделать следующее:
- Добавьте следующее содержимое URI и установить WinRT доступ к «Все»; "https: // .bing.com" и "https: // .virtualearth.com"
- В разделе «Возможности» включить «Местоположение». В противном случае скройте локальную кнопку , которая отображается на карте.
Одна ваша страница карта, рекомендуется , что вы добавляете следующие главы страницы:
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
Ни одно из этих решений не совершенен. Безопасность в JavaScript на основе ОС Windows UWP является основным ограничением, которое многие пользователи испытывают с другими внешними веб-интерфейсами API. Единственный реальный способ - разместить ваше приложение JavaScript в элементе управления веб-браузера, а затем добавить уровень связи между этим и .NET-кодом, а затем использовать код .NET для доступа к конкретным API-интерфейсам Windows, но если вы идете по этому маршруту , вы можете использовать Apache Cordova, который делает именно это для вас.
Посмотрите здесь: https://openlayers.org/ – TheTanic
@TheTanic спасибо, это выглядит как интересный вариант, но для этого нужны обходные пути, описанные в принятом ответе. Как я сказал в вопросе «... или других веб-сервисах; они предназначены для сайтов и полагаются на внешний Javascript, поэтому не будут работать в приложениях CORRECTION: о, это клиентский javascript - хорошо! – anotherfred
Я использую openlayers в моем winjs uwp app' .. и он работает как шарм: D Попробуйте! – TheTanic