Unity webgl Facebook画布应用程序在使用登录对话框失去焦点

时间:2015-12-09 19:24:58

标签: facebook iframe unity3d unity-webgl

我在Facebook上的iframe应用程序(使用Unity webgl制作)在调用Facebook登录对话框(FB.LogInWithReadPermissions)后失去焦点,或者与Facebook进行任何其他交互,从而调出对话窗口(FB.AppRequest等)。 / p>

焦点不会返回到应用程序,因此您需要单击iframe上的任意位置以查看结果,这不是很方便。

任何解决方法?

编辑:

快速而肮脏的解决方案,但它确实有效:

setInterval (
    function () {
        if (!document.hasFocus()) {
            window.focus();
        }
    },
    1000
);

此处不需要document.hasFocus()检查。

我不认为有一种方法可以知道在使用Facebok Unity SDK时Facebook对话窗口何时关闭,因为回调是在失去焦点的WebGL应用程序中执行的,所以直到它实际上它才能工作获得焦点。

在Facebook上使用Facebook JGL SDK进行Unity WebGL游戏可能会更好吗?

2 个答案:

答案 0 :(得分:0)

很久以前我遇到过类似的问题。我通过向index.html添加一个侦听器函数来解决它。它会听取iframe失去焦点并硬重置焦点。 Have a look at onblur event.

答案 1 :(得分:0)

使用这个,我在团结5.2上工作了4个: 在facebook回调的c#上:

 Application.ExternalCall("recuperaFocus");

并在为facebook画布服务的html上使用下一个js:

 function recuperaFocus(){
      this.focus();      
 }