2015-11-16 48 views
0

我試圖建立與煎茶觸摸2,和PhoneGap的應用程序的工作,我用網上的PhoneGap構建服務,http://build.phonegap.comExt JS的,Ext.Ajax.request沒有在移動設備

我有一個問題,該應用在我的電腦上運行得非常好,在所有的瀏覽器上,當我從Chrome瀏覽器打開它時,它也可以在手機上正常工作,我還嘗試了'Phonegap App Desktop',它運行將應用程序傳輸到您的手機的服務器設備,該應用也適用於那裏的移動設備。

但是,當我構建apk並將其安裝到我的手機上時不行。除了Ajax請求,一切都可以工作,這裏是我的ajax請求的一個片段。

Ext.Ajax.request({ 
    url: 'http://192.168.0.200/DVD/store.php', 
    timeout:80000, 
    callback: function(options, success, response) { 
     var home = Ext.getCmp('home'); 
     home.setHtml(response.responseText); 
    } 
}); 

我被摧毀的原因」我可以發誓它工作過,所以我創建了一個新的開箱即用的應用程序並創建了一個按鈕,並添加上述功能,但沒有奏效。

我在做什麼,建造的應用與煎茶sencha app build android 然後我壓縮了Android目錄的內容,把它上傳到的PhoneGap構建服務,然後我我的手機上安裝,一切正常,除了Ajax請求。

我沒有Android SDK中我的電腦上,所以我必須使用PhoneGap的建立在線

缺少什麼我在這裏?

感謝

+0

請求是否有其他請求?聞起來像跨越原點的問題,但沒有任何錯誤信息,你不會走得太遠。您應該[嘗試從請求中獲取錯誤消息](https://www.sencha.com/forum/showthread.php?238414-Ajax-Request-Error-Handling)。 – Alexander

+0

不應該是一個交叉來源的錯誤,我已收到該錯誤,並添加適當的頭文件到PHP文件,以允許所有來源,在我的計算機上我連接到127.0.0.1,我要求從192.168.0.200,這是我自己的知識產權,但我仍然這樣做是爲了模擬可能發生的任何錯誤,我修正了它們,並且它工作得很好,除非在構建之後它不會。 –

回答

1

如果您使用的科爾多瓦5.x中,你將要檢查你的內容安全策略是在您的index.html頭設置正確。你會想在那裏允許連接到http://192.168.0.200

所以一個連接-SRC條款,使用類似以下內容:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; connect-src http://192.168.0.200"> 

這應該允許Android設備訪問您的服務器假設Android設備是在網絡192.168.0.200解析到您的服務器。

如果將來將應用程序移植到iOS,您還需要配置Apple的App Transport Security以允許通配符訪問所有非SSL服務器,或配置例外以允許iOS 9設備將http連接設置爲192.168。 0.200。在整個過程中通過博客文章可以找到here

+0

我已經嘗試過這種解決方案,在拋出一些錯誤之後,我添加了幾個星號,仍然無法在移動設備上工作,它使用phonegap 4構建,我假設它使用cordova 4,所以上述問題不是問題,我注意到當我從應用程序內發出請求時,我收到「網絡連接錯誤」原生通知,因此在android中是否有事件日誌或其他內容,以便我可以閱讀有關錯誤的更多信息?我應該在這裏注意到,移動設備可以訪問服務器,我可以通過移動設備上的chrome瀏覽器訪問該文件 –

+1

需要檢查的另外幾件事是 - 您是否有'在你的config.xml文件,並在您的平臺/ android/AndroidManifest.xml你有'<使用權限android:name =「android.permission.INTERNET」/>' –

+0

我不是在本地建設,所有這些你正在談論的文件正在被添加到服務器上的包中,但我會嘗試在本地構建它並更改你推薦的設置並查看它是如何發生的,但奇怪的是,有一段時間它運行正常。我會嘗試你的建議,但非常感謝 –