我使用PhoneGap将AngularJS应用转换为Android和iOS。我需要升级到最新版本的PhoneGap for iOS 9,但它打破了Android应用程序。
具体来说,它会阻止ngResource工作,因此我无法从我的服务器获取身份验证令牌。
Android的config.xml首选项设置为
,效果很好<preference name="phonegap-version" value="3.7.0" />
Android甚至无法使用这些
中的任何一个向服务器发送请求<preference name="phonegap-version" value="cli-5.1.1" />
<preference name="phonegap-version" value="cli-5.2.0" />
这是我的AngularJs登录功能和ngResource工厂。
$scope.login = function () {
AuthenticationService.get({
'clientId':$rootScope.clientId,
'clientSecret':$rootScope.clientSecret,
'username':$scope.loginData.username,
'password':$scope.loginData.password
},
function(data){},
function(error){
toastr.error('Authentication failed, please try again.');
}
)
.$promise.then(function(response){
...
});
};
.factory( 'AuthenticationService', function($resource, $rootScope) {
return $resource(
$rootScope.url+'/oauth/v2/token?client_id=:clientId&client_secret=:clientSecret&grant_type=password&username=:username&password=:password',
{
clientId:'@clientId',
clientSecret:'@clientSecret',
username:'@username',
password:'@password'
},
{
get: { method: 'JSONP', params: { callback: 'JSON_CALLBACK' }, isArray: false }
}
);
})
是否有人知道可能导致此问题的较新版本的PhoneGap for Android会发生什么变化?
答案 0 :(得分:1)
请在config.xml中添加whitelist
插件参考
<gap:plugin name="cordova-plugin-whitelist" source="npm" />