模拟离子应用程序时,无法使用http服务连接到服务器
我已经构建了一个简单的离子应用程序来测试我的api.但是我遇到了问题,因为当我在实时重载模式(-l选项)中运行它时,一切正常(离子运行ios -l).但是,当我不使用实时重新加载(离子运行ios)时,我的应用似乎出现了错误.我无法调试我的应用程序出了问题的地方,因为这需要live-reload选项,而不会发生错误.
I have built a simple ionic app to test my api. But I ran into problem because when I run it in live-reload mode (-l option) everything works just fine (ionic run ios -l). But when I did not use live-reload (ionic run ios), it is seems that my app got an error. I cannot debug where my apps went wrong because that require live-reload option which an error won't occur.
我已经多次重新安装了白名单插件.我将以下行添加到小部件区域中的config.xml中.
I have reinstall the whitelist plugins several times. I added the below line into my config.xml inside widget zone.
<access origin="*"/>
<allow-intent href="*"/>
<allow-navigation href="*"/>
以及index.html中的以下行
and also the below line in inside my index.html
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
这是我的控制器代码
var url="/api/event/new"
.controller('Test', function($http, $scope) {
$http.get(url).then(function(data) {
$scope.allEvents = {
all : function() {
return data.data;
},
remove: function(Events) {
data.data.splice(data.data.indexOf(Events), 1);
},
get : function(_id) {
for (var x in data.data) {
if(data.data[i]._id == _id) {
return data.data[i];
}
}
return null;
}
};
$scope.isNotConnected = false;
}, function(error) {
$scope.allEvents = {
all : function() {
return [{"title" : "Connection error!"}];
}
}
$scope.isNotConnected = true;
console.log(error);
});
})
这是我的离子信息
Cordova CLI: 6.1.1
Ionic Framework Version: 1.3.1
Ionic CLI Version: 1.7.15
Ionic App Lib Version: 0.7.2
ios-deploy version: 1.8.6
ios-sim version: 5.0.8
OS: Mac OS X El Capitan
Node Version: v5.9.1
Xcode version: Xcode 7.3 Build version 7D175
使用远程调试-iOS和Safari
您可以避免使用实时重新加载和使用safari调试来查看出了什么问题.
Use Remote Debugging - iOS and Safari
you can avoid using live reload and use safari debugging to see what's going wrong.
Safari可用于在连接的iOS设备上调试Ionic应用程序. 首先,我们需要在连接的设备上启用Web Inspector.网页 可以在设置">"Safari">高级"下找到检查器.接下来,头 转到Mac上的Safari,并在菜单中启用显示开发"菜单 Safari>偏好设置>高级下的工具栏.连接的设备应 现在显示在开发"菜单中.从那里,您可以检查并使用 Safari的开发人员工具可调试您的应用程序!
Safari can be used to debug an Ionic app on a connected iOS device. First, we need to enable Web Inspector on the connected device. Web Inspector can be found under Settings > Safari > Advanced. Next, head over to the Safari on your Mac and enable Show Develop menu in menu bar under Safari > Preferences > Advanced. The connected device should now appear in the Develop menu. From there, you can inspect it and use Safari's developer tools to debug your application!