2

我在 Facebook 上的 iframe 应用程序(使用 Unity webgl 制作)在调用 Facebook 登录对话框 ( FB.LogInWithReadPermissions ) 或与 Facebook 的任何其他交互会打开对话框窗口 ( FB.AppRequest等) 后失去焦点。

焦点没有返回到应用程序,所以需要点击 iframe 的任意位置才能看到结果,不是很方便。

任何解决方法?

编辑:

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

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

实际上document.hasFocus()这里不需要检查。

我认为在使用 Facebok Unity SDK 时没有办法知道 Facebook 对话窗口何时关闭,因为回调是在失去焦点的 WebGL 应用程序中执行的,所以在它真正获得焦点之前它不起作用。

也许在 Facebook 上使用 Facebook Javascript SDK for Unity WebGL 游戏会更好?

4

2 回答 2

0

很久以前我有一个类似的问题。我通过向 index.html 添加一个侦听器函数来解决它。如果 iframe 失去焦点并硬重置焦点,它会监听。看看 onblur 事件。

于 2015-12-10T06:41:36.423 回答
0

它在统一 5.2 上使用了 4 个我:在 Facebook 回调的 c# 上:

 Application.ExternalCall("recuperaFocus");

在为 facebook 画布提供服务的 html 上,下一个 js:

 function recuperaFocus(){
      this.focus();      
 }
于 2016-04-12T09:05:06.143 回答