Facebook Connect with Phonegap Build不包括cdv-plugin-fb-connect.js

时间:2014-02-23 07:18:47

标签: facebook cordova phonegap-plugins phonegap-build

我正在使用Phonegap Build and Hydration

我的配置包含插件

<gap:plugin name="com.phonegap.plugins.facebookconnect">
    <param name="APP_ID" value="my_appId" />
    <param name="APP_NAME" value="my_namespace" />
</gap:plugin>

在build.phonegap.com上,它在插件标签下显示我的应用程序......

Installed 3rd Party Plugins
com.phonegap.plugins.facebookconnect        0.4.0

Installed PhoneGap Plugins
org.apache.cordova.camera       0.2.3
org.apache.cordova.console      0.2.3
org.apache.cordova.device       0.2.3
org.apache.cordova.dialogs      0.2.2
org.apache.cordova.geolocation      0.3.2
org.apache.cordova.globalization        0.2.2
org.apache.cordova.media-capture        0.2.3
org.apache.cordova.splashscreen     0.2.3
org.apache.cordova.vibration        0.3.3

我没有指定使用哪个版本的PG,因此它正在运行3.1.0

在我的index.html文件中,我已经

<script src="phonegap.js"></script>
<script src="device.js"></script>
<script src="https://connect.facebook.net/en_US/all.js"></script>
<script src="cdv-plugin-fb-connect.js"></script>
<script src="facebook-js-sdk.js"></script>

以下是我似乎无法找到其他人遇到问题的部分:

在我的deviceready回调中,我正在测试typeof CDV == 'undefined'进行测试,它将以未定义的形式返回。据我所知,cdv-plugin-fb-connect.js未正确包含在内。

我是否认为cdv-plugin-fb-connect.jsfacebook-js-sdk.js不需要复制到我的www目录中,因为它们被PGB包含在那里?

顺便说一句,我正在Android Nexus5上进行测试

<access origin="*" />在我的配置中

1 个答案:

答案 0 :(得分:0)

我永远无法让CDV在我的Android模拟器/手机上正常工作。

但是,我确实让FacebookConnectPlugin.js工作,同样included也是official PhoneGap/Cordova Facebook plugin

此文件有两个版本 -

  1. 您在根www / js文件夹中包含的文件
  2. 在部署到platforms / android之后,PhoneGap从插件文件夹加载的另一个(我相信这是由cordova.js处理的)。
  3. 第二个使用本机调用覆盖JS SDK调用,因此当您在浏览器中运行时,它会正常降级。

    对于实际上似乎有效的示例,请参阅develop branch中的www文件夹。

    e.g。

    var getStatus = function () { 
                    facebookConnectPlugin.getLoginStatus( 
                        function (response) { alert(JSON.stringify(response)) },
                        function (response) { alert(JSON.stringify(response)) });
                }