Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Facebook弹出窗口在iOS Safari、HTML5画布按钮上被阻止_Javascript_Ios_Facebook_Html5 Canvas_Phaser Framework - Fatal编程技术网

Javascript Facebook弹出窗口在iOS Safari、HTML5画布按钮上被阻止

Javascript Facebook弹出窗口在iOS Safari、HTML5画布按钮上被阻止,javascript,ios,facebook,html5-canvas,phaser-framework,Javascript,Ios,Facebook,Html5 Canvas,Phaser Framework,我在基于Phaser的HTML5游戏中使用JSSDK登录facebook。通过打开一个弹出窗口通过facebook登录,它在android设备上运行良好。但它在safari/iOS设备上不起作用。我认为弹出窗口被阻止了,因为它是通过点击游戏中的一个按钮生成的,而不是传统HTML按钮的原因 this.fbBtn = this.game.add.sprite(0, 0, 'sheet', 'Button-Facebook', this.loginGrp); this.fbBtn.inputEnab

我在基于Phaser的HTML5游戏中使用JSSDK登录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'});
    }
}

Fb登录会在Android上弹出一个弹出窗口,在iOS上不会发生任何事情。

这个问题已经得到解决:

InputManager和InputPlugin有三种新方法: addUpCallback、addDownCallback和addMoveCallback。这些方法 允许您添加回调,以便在本机DOM鼠标或 接收触摸事件。调用传递给此方法的回调 在DOM范围内,当DOM事件发生时立即 事件处理程序。因此,他们被认为是“本地人” 浏览器的透视图。这意味着它们可以用于以下任务: 打开新的浏览器窗口,或任何明确要求 要激活的用户输入


您好,不幸的是,我使用的是Phaser 2 CE,而不是3。在这种情况下,我相信有一种解决方法,即使用不可见的html按钮/链接进行重叠。对于一款新游戏,我强烈推荐使用Phaser3,但我认为现在已经太晚了……是的,很遗憾,现在已经太晚了。好的,我会找一个解决办法。