ios - iOS chrome 中白页的 FB 重定向问题

标签 ios facebook google-chrome

当我按下登录按钮时,我会进入 Facebook 页面,我必须在该页面上授予使用我的 Facebook 帐户的权限。

在我授予权限后,它会重定向到 https://www.facebook.com/dialog/permissions.request并显示一个空白页。在 Android 上,“window.FB.login”回调被调用(参见下面的代码),我可以在其中获取信息并重定向用户,但在 Windows Phone 上它只显示该空白页面。当我转到我的 Facebook 页面时,我的网站已在应用程序列表中注册。所以注册确实工作正常。

最佳答案

这个错误是由于facebook js文件加载不安全造成的。

要将 Facebook 应用程序集成到您的应用程序中,您必须按照 Facebook 应用程序文档中指示的步骤进行操作。

    var fbApi = {
      init: function () {
      $.getScript(document.location.protocol + '//connect.facebook.net/en_US/all.js', function () {
        if (window.FB) {
            window.FB.init({
                appId: MY_APP_ID,
                status: true,
                cookie: true,
                xfbml: false,
                oauth: true,
                channelUrl: 'http://www.yourdomain.com/channel.html'
            });

        }
    });
    },
    login: function () {
    /// <summary>
    /// Login facebook button clicked
    /// </summary>
    log("login facebook button clicked");

    if (window.FB) {

        //Windows phone does not enter this method, Android and Iphone do
        window.FB.login(function (response) {

            if (response.status) {
                log('it means the user has allowed to communicate with facebook');

                fbAccessToken = response.authResponse.accessToken;
                window.FB.api('/me', function (response) {
                    //get information of the facebook user.
                    loginService.subscribeSocialUser(response.id, response.first_name, response.last_name, fbAccessToken, "", "FaceBook", fbSucces, fbFail);

                });
            } else {
                log('User cancelled login or did not fully authorize.');

            }
        },
        { scope: 'email'
        });
    }

}
};

添加 channel URL 以解决任何跨浏览器问题。 它应该指向一个引用 js 的 html 文件,如下所示:

<script src="//connect.facebook.net/en_US/all.js"></script>

如果在初始化 Facebook.js 时出现错误,您将无法成功登录。

您可以同步或异步加载 java 脚本。

(function(d, debug){
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all" + (debug ? "/debug" : "") + ".js";
     ref.parentNode.insertBefore(js, ref);
   }(document, /*debug*/ false));

关于ios - iOS chrome 中白页的 FB 重定向问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14519144/

相关文章:

ios - swift 。如何遍历字典值 : var a: [String : [String]]?

php - 用户在 Facebook 上注销,JS SDK 停止工作

ios - 如何使用 iOS Facebook SDK 迭代相册中的照片

javascript - Facebook API - 添加新照片 (Javascript sdk)

google-chrome - 什么是 manifest.json 文件,我在哪里可以在我的机器上找到它?

Safari 和 Chrome 中的 CSS 菜单问题。除非你真的很快,否则子菜单会在悬停时消失!

html - 浏览器窗口外的不透明度变为实心

ios - 使用转义闭包对 AlamoFire 中的 UITableViewData 进行排序

ios - 无法在 iOS 模拟器 10.2 或 10.3 中切换软件键盘

ios - 没有 Storyboard的 UiSplitViewController App