我正在尝试使用sencha touch 2和phonegap构建应用,我正在使用在线phonegap构建服务,http://build.phonegap.com
我有一个问题,该应用程序在我的计算机上,在所有浏览器上运行得非常好,当我从Chrome浏览器打开它时,它在手机上也能正常工作,我也试过了“Phonegap App Desktop&#” 39;它运行的服务器将应用程序传输到您的移动设备,该应用程序也可以在移动设备上运行。
但是当我构建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 sencha app build android
构建应用程序
然后我将android dir内容压缩,上传到phonegap构建服务,然后我将其安装到手机上,除了ajax请求外,一切正常。
我的计算机上没有安装android SDK所以我必须使用phonegap在线版
我在这里缺少什么?
谢谢
答案 0 :(得分:1)
如果您使用的是Cordova 5.x,则需要检查您的内容安全策略是否已在index.html的头部正确设置。你需要一个connect-src子句,允许连接到http://192.168.0.200
所以,请使用以下内容:
<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找到一篇博文,向您介绍整个过程。