0

我正在尝试使用带有 facebook 登录的 jqtouch 构建一个不错的 Web 应用程序。让它工作到一定程度。但是当将应用程序拉到 iPhone 的主屏幕(无窗口查看,jqt)并验证/登录到 FB 时,它会给出一个带有正确 FB 链接的白页。它提供了一个正确的链接(就像我在任何地方寻找答案一样),但我找到并尝试过的修复都没有工作。

使用浏览器时不会发生此问题。FB 弹出窗口正确关闭。使用 safari mobile 时,浏览器会打开另一个选项卡,显示为白色,然后将其关闭并移回浏览器中的原始选项卡。但它不会打开选项卡。它只是坐在那里等待我抱歉的屁股再次单击它并激活选项卡。重新加载时,它已登录。因此该操作有效,但返回页面无效。在无框架模式 (jqt) 下,它不会打开额外的选项卡。它只是用白页覆盖我的页面,并没有关闭它。我没有收到 JS 的萤火虫错误。

在产生问题的同时,我使代码尽可能基本:

<!doctype html>
<html xmlns:fb="https://www.facebook.com/2008/fbml">
  <head>
    <title>My Facebook Login Page</title>
    <script type="text/javascript" src="[my domain]/modules/js/jquery-1.8.3.min.js"></script>
    <script src="[my domain]/modules/jqtouch-1.0-b4-rc/src/jqtouch-jquery.min.js" type="text/javascript" charset="utf-8"></script>
        <script src="[my domain]/modules/jqtouch-1.0-b4-rc/src/jqtouch.min.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript" charset="utf-8">
    // JQT
    var jQT = new $.jQTouch({
        //icon: "jqtouch.png", // Will show an "app" picture now
        addGlossToIcon: false,
        //startupScreen: "jqt_startup.png", // No startup pic
        statusBar: "white",
    });
    </script>

  </head>
  <body>
    <div id="fb-root"></div>
    <script src="http://connect.facebook.net/en_US/all.js"></script>
    <script>
       FB.init({ 
          appId:'[my app id]', cookie:true, 
          status:true, xfbml:true 
       });
    </script>

    <div id="jqt">
        <div id="main" class="current">
            <fb:login-button>Login with Facebook</fb:login-button>
            Random text to have something on the screen
        </div>
    </div>
  </body>
</html>

我已经做了大约 5 天了,而且非常疯狂。某种解决方案将不胜感激。

4

1 回答 1

0

好吧,找到了替代方案。使用 php SDK。但起初它仍然加载了另一个标签。但是使用时:

<a onclick="top.location.href='[facebook login url]'">login</a>

它确实奏效了。它实际上在同一个应用程序的同一个窗口中打开。您需要这样做,因为您无法将目标更改为 target=_self

玩得开心!

于 2013-01-25T08:13:02.493 回答