【发布时间】:2015-05-22 06:32:07
【问题描述】:
我的应用程序有问题,当我在本地主机上运行该应用程序时,它可以正常工作,并且我可以看到频道列表,但是当我尝试通过物理设备测试该应用程序时,它没有显示任何内容。我认为问题出在我用来通过 http 发送 json 数据的方法上。
(function () {
'use strict';
angular.module('testApp').controller('ChannelCtrl', ['$state', 'testApi', ChannelCtrl]);
function ChannelCtrl($state, testApi) {
var vm = this;
myscreenApi.getChannels().then(function(data){
vm.channels = data;
});
vm.selectLeague = function(id){
testApi.setChannelId(id);
$state.go("app.video");
}
};
})();
这是我获取频道数据的函数
function getChannels() {
var deferred = $q.defer(),
cacheKey = "leagues",
ChannelsData = null;
if (ChannelsData) {
console.log("Found data inside cache", ChannelsData);
deferred.resolve(ChannelsData);
$window.alert("From Cache");
} else {
$http.get("http://example.com/api/videos/getchannels")
.success(function(data) {
console.log("Received data via HTTP");
self.leaguesCache.put(cacheKey, data);
$window.alert("From HTTP");
deferred.resolve(data);
})
.error(function(dataerr) {
console.log("Error while making HTTP call.");
$window.alert("Error baba daram " + dataerr);
deferred.reject();
});
}
return deferred.promise;
}
当我使用 JSON.parse() 发送数据时,它可以正常工作。
vm.channels = JSON.parse('[{"Name":"MyScreen News","ID":46,"Thumbnail":"CB46.jpg","Videos":null}]');
总的来说,我使用了通过 JSON 发送数据的 ASP.NET Web API。该应用程序在我们的桌面上运行良好,但是正在运行的应用程序无法从我们的主机检索数据。此外,当我直接在程序中注入数据时,它在两个平台上都可以工作。此外,离子配置文件如下所示:
<content src="index.html"/>
<access origin="*"/>
<preference name="webviewbounce" value="false"/>
<preference name="UIWebViewBounce" value="false"/>
<preference name="DisallowOverscroll" value="true"/>
<preference name="BackupWebStorage" value="none"/>
<feature name="StatusBar">
<param name="ios-package" value="CDVStatusBar" onload="true"/>
</feature>
就是这样。 ;)
【问题讨论】:
-
您是否尝试过在启动应用时使用 adb logcat 查看错误?
-
是的,我有,没有错误
-
当然是一个愚蠢的问题,但您的物理设备上是否有互联网连接? (你称之为example.com/api/videos/getchannels)
-
是的,设备上的网络正常。
标签: angularjs ionic-framework ionic