我试图在我的 Ionic 应用中设置 Facebook登录按钮,但window.fbAsyncInit
根本没有触发,而我&# 39;我试图通过SO中的几种方法来修复它(同样,我已经尝试了 ngCordova ,但由于本地问题,它不会成为一种可能的解决方案)。 运行AngularJS(1.x)。
这是 LoginController.js :
$scope.$on("$ionicView.beforeEnter", function () {
window.fbAsyncInit = function () {
FB.init({
appId: 'MY_APP_ID_HERE',
status: true,
xfbml: true,
version: 'v2.9'
});
FB
.AppEvents
.logPageView();
console.log("INIT.")
};
})
$scope.myFacebookLogin = 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 + '.');
});
} else {
console.log('User cancelled login or did not fully authorize.');
}
}, {scope: 'email,user_likes'});
}
这是登录按钮(其余Login.html
正常运行):
<button ng-click="myFacebookLogin()" class="button button-balanced" style="background-color: #3b5998">Facebook Login</button>
对facebook脚本@ my index.html
的引用(切换到en_us/all.js
并没有什么区别):
<script src="http://connect.facebook.net/pt_br/all.js"></script>
截至目前,我在fbAsyncInit
函数中运行的任何内容都不会触发,目前的例子是上面的console.log("INIT")
。
Chrome上的测试不会以任何方式重定向,并返回 FB.login() called before FB.init()
。在Android设备上进行的测试只是保持不动,就像您没有点击任何按钮一样。
大家好,我已经彻底跟踪Facebook docs' guide了,之前通过function(d, s, id)
在我的控制器中加载了Facebook脚本,但后来我觉得这样做多余了把src放在index.html
。