2015-11-16 17 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

我不是在本地建设,所有这些你正在谈论的文件正在被添加到服务器上的包中,但我会尝试在本地构建它并更改你推荐的设置并查看它是如何发生的,但奇怪的是,有一段时间它运行正常。我会尝试你的建议,但非常感谢 –