7
  • Windows Phone 7 或 8
  • 电话间隙 3
  • AngularJS 1.2

我有一个使用 AngularJS 的 PhoneGap 应用程序,它在 iOS 和 Android 上运行良好,但在 Windows Phone 7 和 8 上运行时遇到问题。

该应用程序启动正常,我看到了我的 index.html 页面(在我的情况下它只是一个加载屏幕)。源文件已加载,我的预启动代码运行良好。

然后它停止,没有任何反应。

我在整个代码中乱扔“console.log”消息,我看到它到达了点angular.bootstrap()然后死了。我对 angular 不够熟悉,不知道下一步该做什么或如何进一步调试它以追踪绝对问题代码可能是什么。bootstrap() 内部开始了 DI 调用的迷宫,因此代码变得不那么线性。

我确实在控制台中看到了这个错误,但不知道它是什么意思或如何修复它:

An exception of type 'System.NotSupportedException' occurred in Microsoft.Phone.ni.dll and wasn't handled before a managed/native boundary

没有其他错误或任何输出记录到控制台。我尝试使用 setTimeout 将所有引导代码延迟 10 秒,并且在angular.bootstrap()调用之前总是报告该错误,所以我不知道它是否相关。

另外值得注意的是,我已经在桌面上的 IE 中尝试了该应用程序,并且在那里运行良好。

所以我的问题是:我该如何调试呢?

4

3 回答 3

2

我不确定 WP7/8,但如果它遵循 Windows 8 模式,请尝试在 angular.js 之前添加 JQuery 2.0

http://net.tutsplus.com/tutorials/javascript-ajax/building-windows-store-applications-with-jquery-2-0/

于 2013-09-04T20:54:56.237 回答
1

我同意 Jason,使用 Windows 特殊/自定义 jQuery。并添加unsafe=true

<script src="js/jquery-1.8.2-win8-1.0.min.js"></script>
<script type="text/javascript">
jQuery.isUnsafe = true;
</script>

Windows 8 补丁的功能已包含在 jQuery 2.0 中。所以可以以同样的方式使用 jQuery 2.0,它会工作的。

所以你也可以使用:

<script src="/lib/jquery-2.0.0.min.js"></script>
<script>
jQuery.isUnsafe = true;
</script>
于 2013-09-10T05:01:32.150 回答
1

我认为此错误无关紧要,因为即使您启动 Cordova/Phongap 模板应用程序(我尝试使用 Cordova 2.9.0),它仍然存在。Visual Studio 没有给出任何很好的解释为什么应用程序没有运行,这就是为什么我尝试 weinre 并在应用程序重新加载时使用 angular-1.0.8 得到以下按摩

Error: Access is denied.
at hookedFunction (http://"my-weinre-ip":8080/target/target-script-min.js#ddtest:551:1)
at Anonymous function (x-wmapp0://www/components/angular/angular.js:9457:7)
at sendReq (x-wmapp0://www/components/angular/angular.js:9334:9)
at $http (x-wmapp0://www/components/angular/angular.js:9125:7)
at Anonymous function (x-wmapp0://www/components/angular/angular.js:9268:11)
at Anonymous function (x-wmapp0://www/components/angular/angular.js:7592:17)
at wrappedCallback (x-wmapp0://www/components/angular/angular.js:6996:15)
at wrappedCallback (x-wmapp0://www/components/angular/angular.js:6996:15)
at Anonymous function (x-wmapp0://www/components/angular/angular.js:7033:11)
at $eval (x-wmapp0://www/components/angular/angular.js:8219:9)

我在这里向 angular 报告了它

编辑

我设法通过

  1. 从 github 应用修复(我不能发布第二个链接没有足够的声誉)

    @github/RobbinHabermehl/angular.js/commit/2645faad908529b5d33af960270755dd65a9aa78

  2. 包括 angular.js 以上的 jquery (2.0.3)

  3. 从角度更改代码行

    var xhr = 新 XHR();

var xhr = new XMLHttpRequest(); 
  1. 触发cordova deviceready事件后手动引导角度应用程序

我在这里的原始线程中报告了它

于 2013-10-05T21:15:25.270 回答