首页 文章

是否有Javascript UWP应用程序的 Map 控件?

提问于
浏览
0

有没有办法在用Javascript编写的UWP Windows应用程序中包含 Map ?

明显的选择:

谢谢 .

1 回答

  • 1

    UWP没有内置的JavaScript Map API . 但是,您可以使用Bing Maps V8 Map 控件 . 如您所知,不使用WebView / WebBrowser的基于JavaScript的Windows应用程序限制使用外部托管的JavaScript文件 . 有两种方法可以解决这个问题 .

    第一种是在iframe中托管您的 Map 代码 . 如果完全包含 Map 功能并且您不需要以编程方式从主应用程序(不太可能)更改 Map ,则此方法可以正常工作 . UWP应用不允许您在iframe中的主应用和JavaScript代码之间进行通信 .

    第二个是修改您在应用程序中引用起始页面的方式,而不是使用本地上下文,使用Web上下文 . 为此,请打开package.appxmanifest,并在起始页面值之前添加“ms-appx-web:///” . 可能是“ms-appx-web:///index.html” . 这可能会限制您的应用程序使用基于JavaScript的UWP应用程序中的某些较低级别功能,例如访问文件系统 .

    在这两种情况下,还要执行以下操作:

    • 添加以下内容URI并将WinRT访问权限设置为"All"; “https://.bing.com " and " https://.virtualearth.com”

    • 在功能下,启用位置 . 否则,隐藏 Map 中显示的用户位置按钮 .

    • 在您的 Map 页面中,建议您将以下内容添加到页面的头部:

    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">

    这些解决方案都不是完美的 . 基于JavaScript的Windows UWP中的安全性是许多用户使用其他基于外部主机Web的API的主要限制 . 唯一真正的解决方法是将您的JavaScript应用程序托管在Web浏览器控件中,然后在该代码和.NET代码之间添加一个通信层,然后使用.NET代码访问Windows特定的API,但是如果您走这条路线,你可以使用Apache Cordova,它可以为你做到这一点 .

相关问题