使用 Bing 地图安装打包版本的 WinJS Windows 8.1 应用程序时出错

Error when installing packaged version of WinJS Windows 8.1 app using Bing Maps

我使用空白通用模板开发了一个 Windows 8.1 应用程序。在使用 visual studio.

进行调试时,应用程序使用 Bing 地图和 运行s 很好

但是,当我在本地打包并安装应用程序时,失败并出现以下错误:

Exception is about to be caught by JavaScript library code at line 1, column 202459 in ms-appx:///Bing.Maps.JavaScript//js/veapicore.js

0x800a138f - JavaScript runtime error: Unable to get property 'replace' of undefined or null reference

显然,这与我使用或引用 Bing 地图 api 的方式有关。

我在我的 default.html 文件中包含 Bing 使用以下脚本引用的地图:

<script type="text/javascript" src="ms-appx:///Bing.Maps.JavaScript//js/veapicore.js"></script>

<script type="text/javascript" src="ms-appx:///Bing.Maps.JavaScript//js/veapiModules.js"></script>

最初创建地图时出现异常:

this.map = new Microsoft.Maps.Map(mapElement, mapOptions);

根据我查看的所有文档,它看起来是正确的。为什么它在 visual studio 调试器中 运行 正常但在打包和安装时失败的任何想法?我是否遗漏了包裹中需要包含的东西?

原来我需要打电话:

Microsoft.Maps.loadModule('Microsoft.Maps.Map' {callback: initMap})

然后在回调中初始化地图。显然,在网页(我引用的文档)上使用 Bing 地图 AJAX 时,这不是必需的,但在 Windows 8.1 javascript 应用程序中是必需的。不知道为什么它在 Visual Studio.

中调试时没有那个部分就可以工作