繁体   English   中英

使用Facebook Connect登录后如何返回iPhone Web应用程序?

[英]How do I get back to the iPhone web app after having logged in with Facebook Connect?

我有一个使用jQuery Mobile构建的移动网站。 我经常在iPhone上以全屏/移动Web应用程序模式运行它(我已将Web应用程序添加到iPhone主屏幕中)。

在页面之一上,要求用户使用Facebook Connect JavaScript API登录到Facebook。 如果用户尚未登录,则可以通过单击登录按钮来完成。 该按钮的事件处理程序如下所示:

("#fbLogin").click(function () {
      FB.login(handleStatusChange(response), 
      { scope: "publish_stream", 
        connect_display: "touch" });
});

在上面的代码中,我插入了一些换行符以提高可读性,但是值类似于示例中的内容。 回调函数(handleStatusChange)处理来自登录请求的响应。

单击此按钮后,将在我的Web应用程序窗口中打开Facebook登录页面。 如果我尚未接受Facebook应用,则还必须为其授予权限。 所有这些似乎都很好。 但是,在我授予权限/登录后,我一直挂在完全空白的屏幕上。

我还尝试了另一种登录方法,方法是将其放在登录按钮事件处理程序中:

window.location = "https://www.facebook.com/login.php
?api_key=MY_API_KEY
&cancel_url=http%3A%2F%2Fwww.mywebsiteurl.com%3A8081
&fbconnect=1
&next=http%3A%2F%2Fwww.mywebsiteurl.com%3A8081
&return_session=1
&session_version=3
&v=1.0
&req_perms=publish_stream
&connect_display=touch";

再次插入换行符以提高可读性。 使用时,它只是一个长字符串。

cancel_urlnext参数中使用的URL是我在Facebook应用程序中注册的URL 如果尝试使用其他URL(例如http://www.google.com ),则会收到错误消息,因此这似乎是正确的。 如您所见,我在开发服务器上使用了另一个端口(端口8081)。 这可能是个问题吗?

结果类似于前面的示例。 我得到了登录/权限页面,但完成所有操作后,我的屏幕空白。 阅读旧版Facebook开发者论坛上的这篇文章后,我尝试了此操作。

另一方面,如果我尝试在Safari(不是作为整页iPhone Web应用程序)中运行它,则登录效果很好。

还有什么我可以尝试的吗? 在iPhone上以全屏/ Web应用程序模式运行时,是否有人可以使用JavaScript API Facebook Connect登录?

提前致谢!

不确定这是否对您有帮助,但是我发现添加iOS Safari链接修复程序还允许Facebook登录在我的全屏Web应用程序中工作,而无需打开“常规” Safari的页面:

// Make links work in iOS fullscreen web app
function disableSafariLinks() {
    $("a").click(function (event) {
        event.preventDefault();
        window.location = $(this).attr("href");
    });
}

另请参阅iPhone Safari Web App在新窗口中打开链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM