2

我正在尝试将 Google-Plus 嵌入到我的 GWT 应用程序中。我希望将它嵌入到 Horizo​​ntalPanel 中。我确实读过+1button 开发者 google。我在 stackoverflow 中没有找到任何关于这个特定问题的帖子。我的问题可能是我不明白如何将 js 包含到 GUI 组件中。我将不胜感激如何将 Google+ 代码添加到面板中的示例。

4

3 回答 3

5

这是如何做到的:

文档:

 <!-- Place this tag in your head or just before your close body tag -->
 <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
 <!-- Place this tag where you want the +1 button to render -->
 <g:plusone></g:plusone>

在 GWT 中:

private void drawPlusOne() {
    String s = "<g:plusone href=\"http://urltoplusone.com\"></g:plusone>";
    HTML h = new HTML(s);
    somePanel.add(h);

    // You can insert a script tag this way or via your .gwt.xml
    Document doc = Document.get();
    ScriptElement script = doc.createScriptElement();
    script.setSrc("https://apis.google.com/js/plusone.js");
    script.setType("text/javascript");
    script.setLang("javascript");
    doc.getBody().appendChild(script);
  }
于 2012-08-30T05:16:21.260 回答
0

我个人从未在 GWT 中嵌入 +1 按钮,但链接的文章似乎很容易解释。

在“一个简单的按钮”部分,它表明实现 GooglePlus 集成的最简单方法是添加以下内容:

<script src="https://apis.google.com/js/plusone.js" />
<g:plusone></g:plusone>

首先,<script>标签应该包含在您的.gwt.xml文件中。

然后我会实现<g:plusone></g:plusone>这样的:

public class GPlusOne extends SimplePanel {
    public GPlusOne () {
        super((Element)Document.get().createElement("g:plusone").cast());
    }
}

(请注意,此代码未经测试,但它基于一个简单的概念,即 aSimplePanel可以扩展为编译为任何 HTML 元素。)

然后,您可以GPlusOne在希望按钮显示的任何地方使用新元素。

于 2012-08-29T17:28:26.063 回答
0

我找到了一种更好的方法:

按照这个例子让按钮在一个普通的 html 页面上调用(你可以在这里尝试一个http://jsfiddle.net/JQAdc/

<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<script src="https://apis.google.com/js/plusone.js">
    {"parsetags": "explicit"}
</script>
<script type="text/javascript">
    function gPlusBtn(id, params) {
        /* window.alert("searching for "+ id +" with params: "+ params) */
        paramsObj = eval( '('+params+')' );
        gapi.plusone.render(id, paramsObj );
    }
// params is here just for a reference to simulate what will come from gwt
 params = '{href:"http://1vu.fr", size:"tall"}';

</script>
</head>

<body>
taken from http://jsfiddle.net/JQAdc/
    <div id="gplus" />
    <button onclick="gPlusBtn('gplus', params)">show!</button>
</body>
</html>

然后您可以调用本机方法来触发 Activity 启动时的按钮显示(如果您使用的是 MVP)。

protected native void plusOneButton(String id, String params) /*-{
    $wnd.gPlusBtn(id, params);
}-*/;

您可以有多个具有不同 url 的按钮,这就是为什么将 id 作为参数保留的原因。

NOTE: for me the raw HTML works on localhost, but the GWT version. I have to deploy to the server to be able to see the results

于 2014-05-03T17:40:09.637 回答