我正在做一个需要从 facebook 登录的项目。我还必须为同一个项目创建一个 android 应用程序,并且需要在其中使用相同的 facebook 登录。所以我已经实现了我的 web 应用程序,其中 facebook 登录工作正常。然后,当我尝试从 android 应用程序登录时,我使用相同的源代码将它转换为 android 应用程序,它在浏览器中打开并且无法正常工作并抛出错误。
“应用程序配置不允许给定 url:应用程序设置不允许一个或多个给定 url。”
我需要一个解决方案,我可以从中将我的相同 Web 应用程序转换为 android、iphone 等。
代码:
应用程序.js
var myApp = angular.module('myApp',['ngRoute']);
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxxxxxxxxxxxxxx',
status: true,
cookie: true,
xfbml: true,
version: 'v2.5'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "http://connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
主页.js
myApp.controller('HomeCtrl',["$scope",function($scope){
$scope.name = 'Login please';
$scope.FBLogin = function(){
FB.login(function(response) {
if (response.authResponse) {
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
console.log('Good to see you, ' + response.name + '.');
console.log(response);
});
} else {
console.log('User cancelled login or did not fully authorize.');
}
});
console.log("dsgfds");
};
}]);
//........使用 ngcordova 实现的更新代码........//
html代码
<!DOCTYPE html>
<html ng-app="facebookApp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.js"></script>
<script type="text/javascript" src="bower_components/angular/angular.min.js"></script>
<script src="bower_components/ngCordova/dist/ng-cordova.min.js"></script>
<script type="text/javascript" src="cordova.js"></script>
<script type="application/javascript" src="js/customjs/fbapp.js"></script>
<title></title>
</head>
<body ng-controller="mainCtrl">
<div>
<div>
<div id="home">
<div id="fb-root" >
</div>
<div >
<h1>Login</h1>
</div>
<div>
<a ng-click="facebookLogin()" style="text-decoration: none"><button>Login via Facebook</button></a>
</div>
</div>
</div>
</div>
</body>
</html>
fbapp.js
var app = angular.module("facebookApp",['ngCordova']);
app.controller('mainCtrl',["$scope","$cordovaOauth", function($scope, $cordovaOauth /*$cordovaFacebook*/) {
$scope.facebookLogin = function() {
$cordovaOauth.facebook("xxxxxxxxxxxxxxxxxxxx", ["public_profile","email"])
.then(function(success) {
alert("welcome1");
}, function (error) {
// error
alert("error :"+ error);
});
}
}]);
错误:
Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.5.0/$injector/modulerr?p0=facebook-app&p1=Err…92.168.1.3%3A3000%2Fbower_components%2Fangular%2Fangular.min.js%3A20%3A449)
(anonymous function) @ angular.js:38
(anonymous function) @ angular.js:4526
n @ angular.js:321
g @ angular.js:4487
fb @ angular.js:4409
Ac.c @ angular.js:1691
Ac @ angular.js:1712
fe @ angular.js:1606
(anonymous function) @ angular.js:30423
i @ jquery.min.js:2
j.fireWith @ jquery.min.js:2
n.extend.ready @ jquery.min.js:2
J @ jquery.min.js:2