我尝试创建Cordova / Phonegap应用并添加Facebook插件,但警告(typeof facebookConnectPlugin);显示未定义:
sudo npm install -g cordova
cordova create hello com.example.hello HelloWorld
cd hello
cordova platform add ios
cordova -d plugin add https://github.com/phonegap/phonegap-facebook-plugin --variable APP_ID="1415347585409217" --variable APP_NAME="Test"
vi www/index.html # Add: alert(typeof facebookConnectPlugin); to the last <script>
cordova emulate ios
预期:模拟器显示&#34;对象&#34;在警告对话框中。
实际:模拟器显示&#34; undefined&#34;在警告对话框中。
任何人都知道我做错了什么?
更新:感谢Devgeeks的回答。
我需要做的其他一些事情才能让它发挥作用:
1)安装较新的&#34; develop&#34;插件的分支:
cordova -d plugin add "https://github.com/phonegap/phonegap-facebook-plugin#develop" --variable APP_ID="1415347585409217" --variable APP_NAME="Test"
2)在开始标记下方添加以下内容:
<!-- fb-root is needed by the FB API. -->
<div id="fb-root"></div>
3)如果您希望FB登录在浏览器中工作(进行测试),请将www / js / facebookConnectPlugin.js复制到您的应用程序中。然后在结束标记之前包含它:
<script src="facebookConnectPlugin.js"></script>
然后将以下内容添加到您的部分:
<script>
window.fbAsyncInit = function () {
if (!window.cordova) {
// Initialize - only executed when testing in the browser.
facebookConnectPlugin.browserInit(308939305080);
}
}
</script>
如果你得到&#34;应用程序配置不允许给定URL:应用程序的设置不允许使用一个或多个给定的URL。它必须与网站URL或Canvas URL匹配,或者域必须是App域之一的子域。&#34;,编辑facebookConnectPlugin.js并将sdk.js更改为sdk / debug.js。
4)如果您在构建Android应用程序时获得以下内容:
sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var
尝试运行以下内容(来自Issue 432):
cp platforms/android/local.properties platforms/android/FacebookLib
答案 0 :(得分:7)
Add: alert(typeof facebookConnectPlugin); to the last <script>
这是表现出预期的,信不信由你。
在deviceready
事件被触发之前,插件无效:http://docs.phonegap.com/en/3.5.0/cordova_events_events.md.html#deviceready
尝试检查生成的facebookConnectPlugin
的{{1}}中的onDeviceReady
而非直接触发的代码?
答案 1 :(得分:2)
大家好我已经在手机间隙应用程序中找到了一些新的Facebook集成,没有任何Facebook插件你可以使用Facebook功能,为此使用phonegap.facebook.inappbrowser.js使用这个js你可以轻松访问所有Facebook功能更多信息请访问以下网址:Facebook Integration Step without any plugins