Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中使用Ionic和AngularJS框架读取json文件?_Android_Json_Angularjs_Ionic Framework - Fatal编程技术网

如何在Android中使用Ionic和AngularJS框架读取json文件?

如何在Android中使用Ionic和AngularJS框架读取json文件?,android,json,angularjs,ionic-framework,Android,Json,Angularjs,Ionic Framework,我现在有一个关于json的问题,在我的android中无法读取 json文件是我的数据所在的地方。它充当静态数据库 我可以在我的桌面上得到它,但是当它出现在我的手机上时,它没有显示出来 以下是我的示例代码: 这是我获取json文件的服务 var serviceUrl = '/'; $http.get(serviceUrl + 'JSON/Books.json').success(function (results) { $scope.New = results; }); 请帮我解决这个

我现在有一个关于json的问题,在我的android中无法读取

json文件是我的数据所在的地方。它充当静态数据库

我可以在我的桌面上得到它,但是当它出现在我的手机上时,它没有显示出来

以下是我的示例代码:

这是我获取json文件的服务

var serviceUrl = '/';
$http.get(serviceUrl + 'JSON/Books.json').success(function (results) {
    $scope.New = results;
});
请帮我解决这个问题。。我对这个问题的看法是
serviceUrl
。你知道吗。非常感谢你。。
我绝对是这个爱奥尼亚框架的初学者。

对于所有仍然在这个问题上的人,我只是找到了一些解决方法。我不知道它是否能解决你的问题,但它确实能解决我的问题。。我使用
file:///android_asset/www/
作为我的服务URL

这是一个例子:

var serviceUrl = 'file:///android_asset/www/';
$http.get(serviceUrl + 'JSON/Books.json').success(function (results) {
    $scope.New = results;
});
试试看,探索一下。。我刚试过那个,它在我身上起了作用

可能是因为
apk
安装程序中的所有
json
文件都将放在
file:///android_asset/www/json
android手机中的目录,让您的url指向该目录

我希望它能帮助你并在其中进行探索这可能不是正确的答案,但我希望它能帮助你找到暗示


谢谢

另一个简单的方法是将json文件转换为javascript文件(如果要更新静态文件,请使用类似于数据库的东西)

例如,将json文档另存为myjsondata.js

var mynamespace = mynamespace || {};
mynamespace.data = [{"foo":"bar"}];
然后在主页中引用javascript文件,在这里加载所有其他js文件

<script src="js/myjsondata.js"></script>


然后,在您的服务中,您只需使用mynamespave.data访问json即可

使用“/”启动
serviceUrl
,使其成为绝对URL。它将在chrome中工作,因为根目录是www文件夹。但在cordova移动环境中,它将转换为
文件://

只需添加一个
('./')以使其成为一个相对路径,它将在android和ios环境中工作。

基于@Datz Me answer,我发现如果将应用程序视为web服务器(事实上是这样的)会更容易并请求您的文件作为它的服务,而不是试图找出如何管理多个构建之间的不同文件路径

这就是我所做的

我已将json文件放在

www/json/app.json
我在里面放了

{
    "title": "Application Title",
    "icon" : "custom-icon.png"
}
在我的app controller中,我使用以下代码读取属性:

$http.get('json/app.json').success(function (results) {
    $rootScope.title = results.title;
    $rootScope.icon = results.icon;
});
在我所有的子控制器中,我只需要添加$rootScope作为依赖项,就可以使用

{{title}} //on headings
{{icon}} //to display the image path
<img src="{{icon}}"/> //to display the icon
关于标题的
{{title}}//
{{icon}}//以显示图像路径
//显示图标的步骤

在我的例子中,这是一个将为多个客户端定制的应用程序,因此我需要一种方法来快速更改应用程序的属性并将其保留在一个位置。

当您使用Chrome远程调试进行检查时,你看到了什么?实际上它在桌面上工作..当我将它转换成.apk文件并在移动设备上执行时,它不再工作..没有数据显示。。。