我在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游戏可能会更好吗?
答案 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();
}