【问题标题】:Facebook popup being blocked on iOS Safari, HTML5 canvas buttonFacebook 弹出窗口在 iOS Safari、HTML5 画布按钮上被阻止
【发布时间】:2019-11-25 03:42:54
【问题描述】:

我在基于 Phaser 的 HTML5 游戏中使用 JS SDK 进行 Facebook 登录。通过打开一个用于通过 facebook 登录的弹出窗口,它在 android 设备中运行良好。但它不适用于 safari/iOS 设备。我认为弹出窗口被阻止是因为它是通过点击游戏内的按钮生成的,而不是传统 HTML 按钮的原因。

this.fbBtn = this.game.add.sprite(0, 0, 'sheet', 'Button-Facebook', this.loginGrp);

this.fbBtn.inputEnabled = true;
this.fbBtn.events.onInputDown.add(this.onFBLogin, this);


onFBLogin() {
    FB.login(function(response) {
        if (response.status === "connected") {
            FB.api('/me?fields=name,email,first_name', function(response) {

            }
        }.bind(this), {scope: 'email'});
    }
}

Facebook 登录在 Android 上打开一个弹出窗口,在 iOS 上没有任何反应。

【问题讨论】:

    标签: javascript ios facebook html5-canvas phaser-framework


    【解决方案1】:

    这个问题已经解决了:

    InputManager 和 InputPlugin 新增了三个方法: addUpCallback、addDownCallback 和 addMoveCallback。这些方法 允许您添加回调以在本机 DOM 鼠标或 接收到触摸事件。调用传递给此方法的回调 在 DOM 事件发生时立即在 DOM 范围内 事件处理程序。因此,它们被认为是“本土的” 浏览器的视角。这意味着它们可以用于诸如 打开新的浏览器窗口,或任何明确需要的东西 用户输入激活。

    【讨论】:

    • 嗨,很遗憾我使用的是 Phaser 2 CE 而不是 3
    • 在这种情况下,我相信有一种解决方法,方法是与不可见的 html 按钮/链接重叠。对于一个新游戏,我强烈建议使用 Phaser 3,但我认为现在为时已晚......
    • 是的,很遗憾现在为时已晚。好的,我会寻找解决方法。
    猜你喜欢
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 1970-01-01
    相关资源
    最近更新 更多