我在Android设备上测试我的Ionic App时遇到问题...正如你在图片中看到的那样,在iOS上一切正常但在Android模拟器中却没有。
我之所以这样问是因为我尝试了一些像Cordova Whitelist Plugin这样的互联网提示
<access origin="*"/>
<allow-navigation href="http://www.ourentec.com/ourenapp/web/api/v1/*"/>
<allow-intent href="http://www.ourentec.com/ourenapp/web/api/v1/*"/>
还有Android Build文件夹中的Manifest.xml
<uses-permission android:name="android.permission.INTERNET" />
我也尝试使用*
,但它不起作用
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="*" />
任何想法都将受到高度赞赏! :)
P.S:如果有帮助,登录工作正常,但不是$ http请求的其余部分
$scope.login = function() {
var req = {
method: 'POST',
url: CONFIG.APIURL + '/access/',
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
data: $.param({
email: $scope.data.email,
passwd: $scope.data.password
})
};
$http(req).then(function successCallback(response) {
$cookies.put('user_id', response.data.user_id);
$cookies.put('API_KEY', response.data.API_KEY);
//redirect to customers main page...
$state.go('tab.customers');
}, function errorCallback(err) {
//show error and delete password
var alertPopup = $ionicPopup.alert({
title: 'Acceso Denegado!',
template: 'Email o contraseña incorrectos...'
});
$scope.data.password = '';
});
}
解决!!!
问题不在于Cordova-Whitelist-Plugin ......问题在于我使用的是AngularJS&#34; ngCookies&#34;默认情况下,Android不允许在WebView中使用Cookie,因此我更换了#34; ngCookies&#34;用&#34; ngStorage&#34; (https://github.com/gsklee/ngStorage)存储会话和API_KEY信息,并在manifest.xml中添加该权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
我希望这可以帮助同一案件中的任何人! :)