如何在英特尔XDK中访问第三方插件(phonegap-facebook-plugin)?

时间:2014-12-04 20:35:10

标签: facebook cordova intel-xdk

我使用带有以下代码的intelxdk.config.additions.xml文件导入Wizcorp phonegap-facebook-plugin:

<intelxdk:plugin intelxdk:name="com.phonegap.plugins.facebookconnect" intelxdk:value="https://github.com/Wizcorp/phonegap-facebook-plugin/">
    <intelxdk:param intelxdk:name="APP_ID" intelxdk:value="MyActualAppID" />
    <intelxdk:param intelxdk:name="APP_NAME" intelxdk:value="fizz points" />
</intelxdk:plugin>

我已经阅读并理解我无法在模拟器中测试此第三方插件,或者通过测试或调试标签测试,因此我已经为Android创建了测试版本。

根据文档,我相信我应该通过调用facebookConnectPlugin来引用这个API,例如:

facebookConnectPlugin.login(["publish_stream", "publish_actions", "offline_access"],
     fbLoginSuccess,
     function (error) { alert("There was an error: " + error) });

但是,我知道在构建的应用程序中,就像在模拟器中一样,没有定义facebookConnectPlugin,因为我根据以下块获得警报:

if (typeof facebookConnectPlugin != 'undefined'){

    // do stuff

} else {

    alert("FacebookConnectPlugin Not Defined");

}

我认为这是因为我需要在我的代码中包含第三方库,除了将它包含在我的项目中,其中包含有用的注释,如:

<!-- Most third-party libraries should go here. References (below) are just examples to give you the general idea... -->
<!-- <script src="lib/mc/hammer.js"></script> -->

最初,在构建工具检索后,我还不知道第三方库最终位于包中的路径。但有人告诉我,我可以将.apk扩展名更改为.zip提取并探索内容。

我做了这个,发现该库存储在:

  

WWW /插件/ com.phonegap.plugins.facebookconnect /网络/ PhoneGap的/插件/ facebookConnectPlugin / facebookConnectPlugin.js

所以我将以下内容添加到我的index.html文件中:

<script src="plugins/com.phonegap.plugins.facebookconnect/www/phonegap/plugin/facebookConnectPlugin/facebookConnectPlugin.js"></script>

但是,在构建时,我查看是否定义了FacebookConnectPlugin的测试仍然失败。

谢谢!

诺亚

[我基本上在英特尔论坛上问了同样的问题:https://software.intel.com/en-us/forums/topic/536743。还没有解决方案,但如果我得到一个,我会在这里发布。]

2 个答案:

答案 0 :(得分:0)

您需要构建应用并将其安装在您的设备上以测试WizCorp Facebook插件。请确保您按照在Facebook上配置应用程序的说明进行操作。

note 仿真器(模拟器)不支持第三方插件,如您所述。使用App Preview进行测试也是如此。您必须在云中构建应用程序。

感谢, 伊恩

答案 1 :(得分:0)

您是否从设备就绪事件中访问了facebookConnectPlugin对象?

document.addEventListener("intel.xdk.device.ready",function() {
    // try in here
}, false);

如果您从外部访问它,可能是undefined因为插件还没有准备好使用。