我正在使用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开发工具中,我看到正在调用的函数中的调用堆栈[本机代码]可能是这个原因,这是否意味着我必须在设备上进行测试?
任何建议都会表示赞赏。
答案 0 :(得分:3)
使用Ripple仿真器测试页面时,应包含 cordova.js 文件。 Ripple模拟器仅模拟移动环境,您仍需要具有定义Cordova对象的cordova.js文件。
Phonegap插件使用 Cordova.exec 从javascript调用本机方法。您的Facebook插件也将使用该方法进行本机方法调用。还要确保在页面中的facebook插件js文件之前加入'cordova.js'。