我想在GWT中使用新的Google+ sign-in button。我找到了this post 关于如何从html制作小部件,但我还没有成功。
public class GooglePlusSignIn extends Widget{
private final String googleHtml="<span id=\"signinButton\">"
+"<span"
+"class=\"g-signin\""
+"data-callback=\"signinCallback\""
+"data-clientid=\"clientID\""
+"data-cookiepolicy=\"single_host_origin\""
+"data-requestvisibleactions=\"http://schemas.google.com/AddActivity\""
+"data-scope=\"https://www.googleapis.com/auth/plus.login\">"
+"</span>"
+"</span>";
public GooglePlusSignIn(String params) {
Document document = Document.get();
DivElement divElement = document.createDivElement();
divElement.setInnerHTML(googleHtml);
setElement(divElement); //important, widget needs to know it's root element
}
private static native void doJsMagic(Element element)/*-{ //notifies js about element
}-*/;
private static native void undoJsMagic(Element element)/*-{
//notifies js that it should do some cleanup (if needed)
//since it is unaware of GWT widget lifecycle
}-*/;
@Override
public void onAttach() {
super.onAttach();
doJsMagic(getElement());
}
@Override
public void onDetach() {
super.onDetach();
// undoJsMagic(getElement());
}
}
答案 0 :(得分:1)
您的字符串中需要空格。跨度和类之间的空间,\&#34; g-signin \&#34;和数据回调等。
另外,我假设您知道这一点,但您必须使用开发人员控制台中的实际客户端ID替换clientID。
答案 1 :(得分:0)
您似乎需要在doJsMagic
中拨打$wnd.gapi.signin.go(element)
,但只需在第一次附加上拨打一次。您无需在undoJsMagic
中执行任何操作。