J'ai un problème dans mon application. Lorsque je lance l'application dans l'hôte local, cela fonctionne sans problème et je peux voir la liste des chaînes, mais lorsque j'essaie de tester l'application avec un périphérique physique, rien ne s'affiche. Je pense que le problème vient de la méthode que j'utilise pour envoyer des données JSON via http.
(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");
}
};
})();
et cela ma fonction pour obtenir channeldata
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;
}
quand j’envoie des données avec JSON.parse (), cela fonctionne correctement.
vm.channels = JSON.parse('[{"Name":"MyScreen News","ID":46,"Thumbnail":"CB46.jpg","Videos":null}]');
Dans l’ensemble, j’ai utilisé l’API Web ASP.NET, qui est l’envoi de données par JSON. L'application fonctionne bien sur notre bureau, mais l'application en cours d'exécution ne peut pas récupérer les données de notre hôte. De plus, lorsque j'injecte des données directement dans le programme, cela fonctionne dans les deux plates-formes. De plus, le fichier de configuration ionique présenté ci-dessous:
<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>
C'est tout. ;)
Avait exactement le même problème en travaillant sur un serveur de test. Il semble que iOS 9 a ajouté une couche de sécurité à leurs applications en empêchant une application de se connecter à un serveur via HTTP plutôt que HTTPS.
Pour résoudre ce problème, vous devez ajouter This Patch à votre build iOS info.plist.
N'oubliez pas que cette solution estNON S&EACUTE;CURIS&EACUTE;Eet ne doit pas être utilisée dans les services Web de production.
J'ai eu le même problème. Si vous utilisez cordova supérieur à 4.0, vous devrez exécuter cordova plugin add cordova-plugin-whitelist
Vous pouvez vérifier votre version de cordova en exécutant cordova -v
Bonne codage.