1

我已经尝试了 phonegap 社区推荐的https://github.com/davejohnson/phonegap-plugin-facebook-connect 上的所有代码,但我一直在尝试让它工作时遇到错误。

如您所见,我使用的是cordova 1.6.0,这可能是问题所在?

我已将脚本文件添加到我的 html 页面中

    <script type="text/javascript" charset="utf-8" src="cordova-1.6.0.js"></script>
    <script type="text/javascript" charset="utf-8" src="cdv-plugin-fb-connect.js">/script>
<script type="text/javascript" charset="utf-8" src="facebook_js_sdk.js"></script>
<script type="text/javascript" charset="utf-8" src="ChildBrowser.js"></script>

我已将 ChildBrowserCommand.cs 添加到插件目录中。

然后,我使用我的真实应用程序 ID(此处未显示真实 ID)将其添加到设备就绪侦听器

      document.addEventListener("deviceready",onDeviceReady,false);
      // once the device ready event fires, you can safely do your thing! -jm
      function onDeviceReady() {
          //document.getElementById("welcomeMsg").innerHTML += "Cordova is ready! version=" + window.device.cordova;
          console.log("onDeviceReady. You should see this message in Visual Studio's output window.");



          //fb connect sign in
          try {
              //alert('Device is ready! Make sure you set your app_id below this alert.');
              console.log('Device is ready! Make sure you set your app_id below this alert.');

              FB.Cookie.setEnabled(true); // this seems to be duplicate to 'cookie: true' below, but it is IMPORTANT due to FB implementation logic.

              FB.init({ appId: "311961255484993", nativeInterface: CDV.FB, cookie: true });

              login();
          } catch (e) {
              //alert(e);
              console.log("Init error: " + e);
          }
      };

      function login() {
          FB.login(
                function (response) {
                    if (response.session) {
                        console.log('logged in');
                    } else {
                        console.log('not logged in');
                    }
                },
                { scope: 'email, read_stream, read_friendlists' }
            );
            }

我得到的错误是

找不到命令 :: org.apache.cordova.facebook.Connect

有什么帮助吗?

编辑:我也意识到它来自这里的 cdv-plugin-fb-connect.js 但不知道为什么?

    cordova.exec(function () {
        var authResponse = JSON.parse(localStorage.getItem('cdv_fb_session') || '{"expiresIn":0}');
        if (authResponse && authResponse.expirationTime) {
            var nowTime = (new Date()).getTime();
            if (authResponse.expirationTime > nowTime) {
                // Update expires in information
                updatedExpiresIn = Math.floor((authResponse.expirationTime - nowTime) / 1000);
                authResponse.expiresIn = updatedExpiresIn;

                localStorage.setItem('cdv_fb_session', JSON.stringify(authResponse));
                FB.Auth.setAuthResponse(authResponse, 'connected');
            }
        }
        console.log('Cordova Facebook Connect plugin initialized successfully.');
    }, (fail ? fail : null), 'org.apache.cordova.facebook.Connect', 'init', [apiKey]);
},
4

0 回答 0