2

我正在使用带有 Cordova/Phonegap 的 Facebook Connect 插件,此处已解释(https://github.com/phonegap-build/FacebookConnect)。我已经包含了我的 Facebook SDk js 文件,还包含了 FB Cordova js 文件,我没有包含 Cordova.js 文件本身,因为当我调用登录时它似乎已包含在 Ripple Emulator(使用 Ripple 测试)中Facebook JS 文件中的方法我在 try-catch 块中得到异常:'无法调用未定义的方法'exec''

这是我的代码的快照

document.addEventListener('deviceready', function() {
                                  try {
                                  alert('Device is ready! Make sure you set your app_id below this alert.');
                                  FB.init({ appId: "appid", nativeInterface: CDV.FB, useCachedDialogs: false });
                                  document.getElementById('data').innerHTML = "";
                                  } catch (e) {
                                  alert(e);
                                  }
                                  }, false);

从 Chrome 开发工具中,我在被调用函数的调用堆栈 [本机代码] 中看到这可能是原因,这是否意味着我必须在设备上进行测试?

任何建议将不胜感激。

4

1 回答 1

3

当您使用 Ripple 模拟器测试页面时,您应该包含cordova.js文件。Ripple 模拟器仅模拟移动环境,您仍然需要定义 Cordova 对象的 cordova.js 文件。

Phonegap 插件使用 Cordova.execjavascript 调用本机方法。您的 Facebook 插件也将使用该方法进行本地方法调用。还要确保在页面中的 facebook 插件 js 文件之前包含“cordova.js”。

于 2013-07-25T08:34:49.297 回答