2016-09-21 43 views
2

我用cordova/ionic和angularjs创建了这个应用程序。它使用谷歌地图等。我设法在上周制作了一个在VS2015中构建windows phone 10的工作环境,今天准备发布版本,但是如果没有明显的原因,它会停止工作。开始给我WinJS undefined。我的index.html头看起来像这样构建之前:Windows通用JavaScript运行时错误:'WinJS'未定义

<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断点,我可以看到window.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

您是否尝试过'cordova平台添加https:// github.com/apache/cordova-windows'? (可能与[CB-11658](https://issues.apache.org/jira/browse/CB-11658)) – daserge

+0

嗯,我想添加在cordova.js之前手动运行。 – spiritworld

回答

1

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

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

所以要确认 - 你试过了吗?'HTML,它不起作用? [CB-11658补丁](https://issues.apache.org/jira/browse/CB-11658)只是更新开始页面HTML以在cordova.js之前包含WinJS引用。 – daserge

+0

哦,我的错字。 :D它与“/www/WinJS/js/base.js”和“WinJS/js/base.js”,但与“www/WinJS/js/base.js” – spiritworld

+0

无效,谢谢。然后你应该可以通过更新到cordova-windows的主版本来解决这个问题('cordova platform add https:// github.com/apache/cordova-windows')。 – daserge

相关问题