2013-08-29 89 views
8
  • 的Windows Phone 7或8
  • PhoneGap的過程中死亡3
  • AngularJS 1.2

我有使用AngularJS一個PhoneGap的應用程序,iOS上的偉大工程和Android,但我有一個問題讓它在Windows Phone 7和8上工作。Windows Phone 7和8的PhoneGap +角自舉

該應用程序啓動正常,我看到我的index.html頁面(在我的情況下只是一個加載屏幕)。源文件被加載,我的預啓動代碼運行良好。

然後它停下來,沒有任何反應。

我在整個代碼中散佈了「console.log」消息,我發現它到達了angular.bootstrap()的位置,然後死亡。我對角度知之甚少,不知道下一步該怎麼做,或者如何進一步調試以追蹤絕對問題代碼。 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瀏覽器嘗試過應用程序,它在那裏工作得很好。

所以我的問題是:我該如何去調試呢?

+0

你有一個堆棧跟蹤時你試圖運行它? –

+0

你有沒有找到解決你的問題?我有一個非常類似的問題,雖然我從來沒有看到控制檯中的任何錯誤。我確實在Angular中找到了這一行的一個問題:'var injector = createInjector(modules);'如果我在我的應用程序模塊中有依賴項,似乎會失敗,但似乎沒有它們就運行。我仍然得到一個空白屏幕。 – Gregir

+0

我想我可能找到了解決這個問題的辦法。我能夠得到一個簡單的例子,並在這裏發佈了一些代碼片段:https://github.com/angular/angular.js/issues/4288,如果有人感興趣,我可以把樣例我的github上的應用程序,所以每個人都可以看到源代碼,但你應該能夠得到它與我張貼的片段,它爲我工作角1.2,Windows Phone 8和Phonegap 3.2 RC1 –

回答

1

我與Jason同意之前,Windows 8的模式嘗試加入的JQuery 2.0,使用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> 
1

我不認爲這是錯誤,因爲相關的,即使你開始科爾多瓦/ Phongap模板的應用程序(我試圖與科爾多瓦2.9.0)存在。 Visual Studio沒有給出任何很好的解釋,爲什麼應用程序沒有運行,這就是爲什麼我嘗試了我們,並用angular-1.0在應用程序reloade上得到以下按摩。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) 

我報告給角here

編輯

我設法在PhoneGap的WP7運行的基本角度應用(沒有測試它尚未在WP8)的

  1. 從github申請修復(我不能發佈第二個鏈接沒有足夠的聲望)

    @ github上/ RobbinHabermehl/angular.js /提交/ 2645faad908529b5d33af960270755dd65a9aa78

  2. 包括angular.js

  3. 以上的jquery(2.0.3)從

    變種XHR改變的代碼行中的角=新的XHR();

var xhr = new XMLHttpRequest(); 
  1. 手動自舉角應用程序後,科爾多瓦deviceready觸發的事件

我報告說,它在我原來的線程here

+0

我在github上的原始線程中回覆了我經過無數次嘗試後能夠進行路由的工作,並且它在配置中將白名單url作爲角色出於某種原因在WP8應用程序中不信任它們。如果它解決了你的問題,讓我知道,我會在這裏發佈它以及一個解決方案,它爲我工作,但不知道它會適用於每個人 –