gpt4 book ai didi

java - 如何在 GWT UiBinder 中使用 JavaScript 回调函数?

转载 作者:行者123 更新时间:2023-11-27 23:58:36 24 4
gpt4 key购买 nike

我想在移动网页上登录 Facebook。这可以通过 Facebook Login Button 来完成.它很好用。我的 GWT UiBinder 页面中有以下代码:

<g:HTMLPanel>
<div class="fb-login-button" data-max-rows="1" data-size="xlarge"
data-show-faces="false" data-auto-logout-link="false"
data-scope="email,publish_actions,user_birthday,user_likes"
onlogin="alert('I am a JavaScript callback');"></div>

</g:HTMLPanel>

如果登录成功,将调用 onlogin JavaScript 函数。

我怎样才能以某种方式使用这个回调函数来在这个函数被调用时得到通知?有没有办法在这里使用 JSNI 或其他东西?

最佳答案

这是基于洛根答案的正确工作版本。我添加了所需的实例变量,因为 myOnload() 方法是非静态的。我还添加了 $entry() 函数来跟踪 GWT 中的错误。

class MyClass{

MyClass(){

expose();

// UiBinder stuff here
}

// Call this once. Exports your Java method as a javascript method
public native void expose()/*-{
var instance = this;
$wnd.myOnLoadThing = $entry(function(){
instance.@com.my.MyClass::myOnload()();
});
}-*/;

public void myOnload(){
// Put your java onload function here
};
}

在您的 uiBinder 中,确保调用 myOnLoadThing

<g:HTMLPanel>
<div class="fb-login-button" data-max-rows="1" data-size="xlarge"
data-show-faces="false" data-auto-logout-link="false"
data-scope="email,publish_actions,user_birthday,user_likes"
onlogin="window.myOnLoadThing();"></div>

</g:HTMLPanel>

这里也有一个很好的答案: How to call GWT java function from Javascript?

关于java - 如何在 GWT UiBinder 中使用 JavaScript 回调函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22521346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com