Phonegap Facebook Connection无法找到JavaScript

时间:2013-11-29 10:29:19

标签: ios facebook cordova facebook-javascript-sdk

我知道有一些文章在讨论这个问题,我跟着他们都没有运气。

我遇到了问题 - “Facebook变量不存在。请检查您是否已包含Facebook JS SDK文件”

Xcode中的我的包名称为org.apache.cordova.Game

因此,如果我在配置文件中正确理解,我写道:

<gap:plugin name="org.apache.cordova.Game.plugins.FacebookConnectPlugin">
    <param name="APP_ID" value="123123" />
    <param name="APP_NAME" value="Game" />
</gap:plugin>

我正在尝试启动示例index.htmlcdv-plugin-fb-connect.jsfacebook-js-sdk.js都在www文件夹中(使用finder复制js并且不执行任何操作来自Xcode)

index.html也在finder中复制到www,来源是:

<body>
    <button onclick="login()">Login</button>
    <button onclick="me()">Me</button>
    <!--<button onclick="getSession()">Get session</button>-->
    <button onclick="getLoginStatus()">Get login</button>
    <button onclick="logout()">Logout</button>
    <button onclick="facebookWallPost()">facebookWallPost</button>
    <button onclick="publishStoryFriend()">friendstory</button>

    <div id="data">loading ...</div>

    <!--<script src="http://localhost:8080/target/target-script-min.js#anonymous"></script>-->
    <div id="fb-root"></div>
    <!-- cordova -->
    <script src="cordova.js"></script>
    <!-- cordova facebook plugin -->
    <script src="cdv-plugin-fb-connect.js"></script>
    <!-- facebook js sdk -->
    <script src="facebook_js_sdk.js"></script>

    <script>
.........

1 个答案:

答案 0 :(得分:0)

首先来自cordova 3,应该将配置文件插件添加为插件作为功能而不是插件

    <feature name="org.apache.cordova.facebook.Connect">
       <param name="ios-package" value="FacebookConnectPlugin" />
    </feature>

其次在html中它应该在设备上准备就绪,而不是FB的web dev API中记录的那样:

document.addEventListener('deviceready', function() {
                          try {

                          FB.init({ appId: "12345", nativeInterface: CDV.FB, useCachedDialogs: false });


                          FB.Event.subscribe('auth.authResponseChange', function(response) {
                                             getProfile();
                        });


                          } catch (e) {
                          alert(e);
                          }
                          }, false);