Javascript Windows Phone 7和8,带有PhoneGap+;自举过程中的角模 Windows Phone 7或8 电话缺口3 AngularJS 1.2

Javascript Windows Phone 7和8,带有PhoneGap+;自举过程中的角模 Windows Phone 7或8 电话缺口3 AngularJS 1.2,javascript,angularjs,windows-phone-8,cordova,Javascript,Angularjs,Windows Phone 8,Cordova,我有一个使用AngularJS的PhoneGap应用程序,它在iOS和Android上运行得非常好,但我在Windows Phone 7和8上遇到了一个问题 该应用程序启动良好,我看到了我的index.html页面(在我的例子中,这只是一个加载屏幕)。源文件已加载,我的预引导代码运行良好 然后它停止了,什么也没发生 我在代码中到处乱扔“console.log”消息,我看到它达到了angular.bootstrap()的程度,然后就消失了。我对angular不太熟悉,不知道下一步该做什么,也不知道

我有一个使用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桌面上试用过这个应用程序,它在那里运行得很好


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

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


我同意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>

jQuery.isUnsafe=true;
Windows8-patch的功能已经包含在jQuery2.0中。因此,只要以同样的方式使用jQuery2.0,它就会工作

因此,您还可以使用:

<script src="/lib/jquery-2.0.0.min.js"></script>
<script>
jQuery.isUnsafe = true;
</script>

jQuery.isUnsafe=true;

我认为这个错误与此无关,因为即使您启动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)
我向他报告了

编辑

我设法在phonegap WP7中运行了一个基本的angular应用程序(尚未在WP8上测试)

  • 正在从github应用修复程序(我无法发布第二个链接-信誉不足)

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

  • 包括angular.js上面的jquery(2.0.3)

  • 从角度更改代码行

    var xhr=new xhr()

  • cordova deviceready事件触发后手动引导angular应用程序

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

    您尝试运行它时是否有堆栈跟踪?您是否找到了问题的解决方案?我有一个非常类似的问题,尽管我从未在控制台中看到任何错误。我确实在Angular中找到了这一行的问题:
    var injector=createInjector(modules)
    如果我的应用程序模块中有依赖项,它似乎会失败,但似乎在没有依赖项的情况下运行。不管怎样,我还是会得到一个空白屏幕。我想我可能已经找到了解决这个问题的方法。我能够得到一个简单的示例并运行,我在这个github线程上发布了一些代码片段:,如果有人感兴趣,我可以在我的github上放置一个示例应用程序,这样每个人都可以看到源代码,但你应该能够让它与我发布的代码片段一起工作,它与angular 1.2、windows phone 8一起工作,phonegap 3.2 RC1I在github中的原始线程上回答说,经过多次尝试,我能够使路由正常工作,这与在配置中将url白名单有关,因为某些原因不信任WP8应用程序中的url。如果它解决了您的问题,请让我知道,我会将它以及解决方案发布在这里,它对我有效,但不确定它是否对每个人都有效。此外,我还提供了1.8的修补版本,但我也成功地使用了2.0。
    var xhr = new XMLHttpRequest();