错误:插件' FacebookConnectPlugin'找不到,或者不是CDVPlugin。检查config.xml中的插件映射

时间:2014-07-06 01:33:15

标签: ios facebook cordova sencha-touch

我无法使用适用于iOS的FacebookConnectPlugin。原始应用程序是使用Phonegap v3.4.0-0.19.17构建的Sencha Touch应用程序。

到目前为止我做了什么:

  1. 让插件使用Android
  2. 我的config.xml包含以下内容:

    <feature name="org.apache.cordova.facebook.Connect">
        <param name="ios-package" value="FacebookConnectPlugin" />
    </feature>
    <gap:plugin name="com.phonegap.plugins.facebookconnect" version="0.4.0">
        <param name="APP_ID" value="*****" />
        <param name="APP_NAME" value="*****" />
    </gap:plugin>
    
  3. 在XCodeProject / Plugins / ios组下添加了FacebookConnectPlugin.h和FacebookConnectPlugin.m

  4. 在XCode项目中添加了适用于iOS的FacebookSDK框架
  5. 编辑了Re​​sources / MyProject.plist文件,添加以下条目:

    FacebookAppID: ***** 
    FacebookDisplayName: *****
    URL types
       Item 0
           URL Schemes
              Item 0: fb*****
    
  6. 你能帮助我让这个插件工作吗? 谢谢!

3 个答案:

答案 0 :(得分:0)

好的伙计们,我花了太多的钱试图解决这个问题。最后我找到了答案。 我查看了/phonegap/plugins/com.phonegap.plugins.facebookconnect/plugin.xml

仔细看了看这一节:

<platform name="ios">
    <config-file target="config.xml" parent="/*">
        <feature name="FacebookConnectPlugin">
            <param name="ios-package" value="FacebookConnectPlugin"/>
            <param name="onload" value="true" />
        </feature>
        <plugin name="FacebookConnectPlugin" value="FacebookConnectPlugin"/>
        <access origin="https://m.facebook.com" />
        <access origin="https://graph.facebook.com" />
        <access origin="https://api.facebook.com" />
        <access origin="https://*.fbcdn.net" />
        <access origin="https://*.akamaihd.net" />
    </config-file>

所以我将config.xml条目更改为如此。现在我的config.xml看起来像这样:

<feature name="FacebookConnectPlugin">
    <param name="ios-package" value="FacebookConnectPlugin"/>
    <param name="onload" value="true" />
</feature>
<gap:plugin name="com.phonegap.plugins.facebookconnect" version="0.4.0">
    <param name="APP_ID" value="785063524838258" />
    <param name="APP_NAME" value="Sightseaing" />
</gap:plugin>
<plugin name="FacebookConnectPlugin" value="FacebookConnectPlugin" />

那就是侥幸! 我希望这可以节省别人的时间和行动时间。

答案 1 :(得分:0)

答案现在在插件FAQ中列出。

答案 2 :(得分:0)

对于正在使用apprequests并且无法使该插件在iOS上运行的用户。问题是actionType是必需的,甚至可以是一个空字符串,即使在Android平台上也可以正常运行,即使在iOS平台上也可以触发。示例代码为:

this.options = {
  actionType: '',
  method: 'apprequests',
  message: 'Play MYGAME with me!'
};

或者,您也可以检查issue#791 (comment)及其链接以了解更多详细信息。