Windows Universal JavaScript运行时错误:' WinJS'未定义

时间:2016-09-21 10:15:44

标签: javascript angularjs cordova windows-10-universal

我用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手机在应用程序崩溃之前就更新了,但我怀疑它只是巧合(?)

1 个答案:

答案 0 :(得分:2)

必须回答我自己的问题。该应用程序通过手动添加WinJS脚本BEFORE cordova脚本运行。

<script src="/www/WinJS/js/base.js"></script>