Cordova:无法调用未定义的方法'exec'

时间:2013-07-25 07:32:16

标签: jquery jquery-mobile cordova phonegap-plugins

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

这是我的代码的快照

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开发工具中,我看到正在调用的函数中的调用堆栈[本机代码]可能是这个原因,这是否意味着我必须在设备上进行测试?

任何建议都会表示赞赏。

1 个答案:

答案 0 :(得分:3)

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

Phonegap插件使用 Cordova.exec 从javascript调用本机方法。您的Facebook插件也将使用该方法进行本机方法调用。还要确保在页面中的facebook插件js文件之前加入'cordova.js'。