我在基于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'});
}
}
Fb登录会在Android弹出窗口中打开,而在iOS上则没有任何反应。
答案 0 :(得分:1)
该问题已得到解决:
InputManager和InputPlugin具有三个新方法: addUpCallback,addDownCallback和addMoveCallback。这些方法 允许您添加要在本机DOM鼠标或 接收到触摸事件。调用传递给此方法的回调 DOM事件发生时立即在DOM范围内 事件处理程序。因此,它们被认为是“本地” 浏览器的角度。这意味着它们可以用于诸如 如打开新的浏览器窗口或任何明确需要的内容 用户输入以激活。