我知道,收到以下错误是一个普遍的问题:FB是不是在科尔多瓦/离子应用程序定义的错误
ReferenceError:FB is not defined
我有参考以下职位,这似乎涵盖了广泛的解决方案的阵列。 FB is not defined problem
具体我遇到的问题是,如果我考出我的应用程序部署到浏览器中,fbAsyncInit(...)
在我的根index.html
page.I知道这个打击,因为我在FB的init的第一行把一个alert('fbAsyncInit(..)')
码。例如,如果我运行下面的命令,它提醒fbAsyncInit(..)
ionic serve
只要我使用下面的命令部署到一个设备,我没有得到任何警告,当我尝试实际调用$cordovaFacebook.login(...)
它给了我以下错误:
ReferenceError: FB is not defined
我的根index.html
类似于(删除了一些东西为简洁起见)。
<html>
<!-- Other stuff here -->
<div id="fb-root"></div>
<script type="text/javascript" src="lib/additional/FacebookConnectPlugin.js"></script>
<script>
window.fbAsyncInit = function() {
console.log('fbAsyncinit(..)');
FB.init({
appId : '/*App id here*/',
cookie : true, // enable cookies to allow the server to access
xfbml : true, // parse social plugins on this page
version : 'v2.1' // use version 2.1
});
(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 = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
};
</script>
<!-- Other Stuff Here -->
</html>
的一件事是打在FacebookConnectPlugin.js
// Bake in the JS SDK
(function() {
if (!window.FB) {
console.log("launching FB SDK");
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/sdk.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
console.log(window.FB) //FB is undefined
}
}());
当脚本标签加载了FacebookConnectPlugin.js
和这一段代码运行时,它试图打印window.FB
的定义下面这段代码控制台,但它的未定义。
任何想法给上述代码有什么错?
地方你的代码$ ionicPlatform.ready内(函数(){//代码在这里}) –
放置在$ ionicPlatform的FB.init和SDK代码。准备好(...)做了诡计!感谢您的帮助 – TheJediCowboy