Angular$http.get()在Phonegap DevApp中不起作用
Angular $http.get() does not work in Phonegap DevApp
对于我的Phonegap应用程序,我正在尝试使用angulars$http加载一个JSON文件。
我得到了这项服务:
cApp.factory('language', function ($http) {
return {
getLanguageData: function () {
return $http.get('../../lang/' + lang.substr(0,2) + '.json');
}
}
});
我在这个控制器中使用的:
cApp.controller('initController', function ($scope, language) {
language.getLanguageData().success(function (data) {
$scope.language = data;
}).catch(function (e) {
alert("error" + e);
});
});
这在我的浏览器中运行良好,但在Android上的Phonegap Developerapp中则不然。控制器不写入language
变量,也不会发出任何警报(甚至不会发出"错误")。
我尝试了什么:
使用.catch().then().catch()
链,它返回的数据是最后一个.catch()
中的null
。
我不知道这是否是一个跨来源的问题,但我的phonegap白名单允许所有域(<access origin="*" />
)。
无论如何,这些文件应该在同一个域中,因为我的文件夹结构如下:
.myapp
├── www
| ├── js
| | ├── controller
| | | └── initController.js
| | └── service
| | └── language.js
| └── lang
| ├── en.json
| └── de.json
└── config.xml
我做错了什么,失踪了?
更新:找到部分解决方案:
如果我使用整个路径执行get()
,它就会工作:
return $http.get('file:///data/data/com.adobe.phonegap.app/files/phonegapdevapp/www/json/lang/' + lang.substr(0,2) + '.json');
这不是一个合适的解决方案,因为它在iOS上不起作用(路径不同)。我不明白为什么我不能使用../../lang/
。
您应该使用cordova应用程序的文件api将其作为文件处理。
相关文章:
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- angular.js没有'无法在PhoneGap中处理视图标记
- 在phonegap应用程序内部重定向不起作用
- 压缩phonegap中ios的图像插件
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 尝试使用Phonegap进行php登录
- 从手机中选择多个图像'使用phonegap的多媒体资料
- cordova-2.0.0.js不适用于使用phonegap的android
- Phonegap 3.7.0手电筒插件没有'不起作用
- PhoneGap选项卡栏自定义字体,背景图案
- LocalStorage phonegap摄像头图像
- 在phonegap中为android调用onload函数的最佳方式
- Phonegap css height%不适用于android 4.2-4.3
- 在Phonegap中重定向到新页面后,AdMob未定义
- PhoneGap/带有RequireJS's的文本插件
- onLoad function phonegap android
- Phonegap:获取访问令牌时出现LinkedIn登录错误
- 如何使用phonegap从安卓设备中提取联系人的字母顺序
- Angular$http.get()在Phonegap DevApp中不起作用