我用cordova / ionic和angularjs创建了这个应用程序。它使用谷歌地图等我上周设法在VS2015上制作了一个可操作的Windows Phone 10,今天它将进行发布版本,但是如果它已经停止工作没有明显的原因,那就太惊讶了。开始给我WinJS undefined。我的index.html标头在构建之前看起来像这样:
<script src="cordova.js"></script>
<script src="js/ionic.bundle.min.js"></script>
<script src="js/requirejs/require.js"></script>
<script src="js/app.js"></script>
在调试DOM资源管理器时显示此标题
<script src="cordova.js"></script>
<script src="/www/WinJS/js/base.js"></script>
<script src="js/ionic.bundle.min.js"></script>
<script src="ms-appx-web://companyName.appName/www/cordova_plugins.js"></script>
<script src="js/requirejs/require.js"></script>
<script src="js/app.js"></script>
所以WinJs似乎被包括在内。通过使用断点检查 cordova.js ,我可以看到该窗口.WinJS未定义,脚本添加了:
if (!window.WinJS) {
var scriptElem = document.createElement("script");
if (navigator.appVersion.indexOf('MSAppHost/3.0') !== -1) {
// Windows 10 UWP
scriptElem.src = '/www/WinJS/js/base.js';
...}
scriptElem.addEventListener("load", onWinJSReady);
document.head.appendChild(scriptElem);
此时它仍然崩溃
var onWinJSReady = function () {
var app = WinJS.Application;
.... }
我在这里和那里看到过类似的问题,但这些问题都适用于Windows Phone 8.1。我不知道这里发生了什么。我的W10手机在应用程序崩溃之前就更新了,但我怀疑它只是巧合(?)
答案 0 :(得分:2)
必须回答我自己的问题。该应用程序通过手动添加WinJS脚本BEFORE cordova脚本运行。
<script src="/www/WinJS/js/base.js"></script>