`

GWT使用JSNI與外部javascript整合

阅读更多
(1) 範例一:使用外部的javascript library 來做MD5

首先在html檔中引用javascript檔案:

<script language="javascript" src="http://pajhome.org.uk/crypt/md5/md5.js">
</script>

然後定義一個新class,並利用JSNI宣告member function:

public class MD5 {

public native static String getHexHMACMD5(String password, String challenge )
/*-{

return hex_hmac_md5(password, challenge)

}-*/;

}
注意:JSNI語法要用/*- 以及 -*/ 包裝起來。
上面的程式碼將js的一個function包裝(warp)成一般的java function,這樣就可以用下列方式來存取:
String hash = MD5.getHexHMACMD5( password.getText(), challenge );


(2) 範例二:Google Map - 使用外部的javascript library來建立user interface

同樣需要在HTML檔案中引用js檔:
<script src="http://maps.google.com/
maps?file=api&amp;v=2&amp;key=ABQIAAAACeDba0As0X6mwbIbUYWv-RTbvLQlFZmc2N8bgWI8YDPp5FEVBQUnvmfInJbOoyS2v-
qkssc36Z5MA" type="text/javascript"></script>


建立新的widget,並記得要繼承HTML widget

public class GoogleMap extends HTML{

private static int nextId = 0;
private JavaScriptObject map;

public GoogleMap()
{

String id = "map"+(++nextId);
setStyleName("gwtapps-GoogleMap"); /* 設定對應的CSS */
setHTML("
"); /* google map 需要div element,並設定為自訂的ID */
RootPanel.get().add( this ); /* 取得預設的Root Panel,加入自己 */
map = initMap(id); /* 取得javascript的map object,之後可以用來呼叫其他API */

}

public void setCenter( final double lon, final double lat )
{

setCenterImpl( map, lon, lat );

}

private native static JavaScriptObject initMap( String id )
/*-{

var map = new $wnd.GMap2( $doc.getElementById(id) ); /* 初始化GMap時將自訂ID當成參數 */
return map;

}-*/;

private native static void setCenterImpl(JavaScriptObject map, double lon, double lat )
/*-{

map.setCenter(new $wnd.GLatLng(lon, lat), 13);

}-*/;

}
分享到:
评论

相关推荐

    GWT-JSNI.pdf

    GWT-JSNI.pdf GWT-JSNI.pdfGWT-JSNI.pdf

    gwt-jsni:用于 GWT 项目的 JSNI 实用程序

    gwt-jsni 用于 GWT 项目的 JSNI 实用程序。 用法 将依赖项添加到您的 Maven POM: &lt; groupId&gt;com.bytebybyte.gwt&lt;/ groupId&gt; &lt; artifactId&gt;jsni &lt; version&gt;1.0.0 &lt; scope&gt;provided 和你的 .gwt.xml 文件: ...

    smartgwt+mybatis+spring的整合

    上次上传的没有包含数据库表这次补上;smartGwt、spring和Mybatis的整合

    GWT与Spring整合经典文章

    GWT与Spring整合,分析的很透彻,有代码过程。

    GWT揭秘(书签整理版)

    115提供的那个不知道怎么回事,我一直下不下来,后来在论坛找到了但是书签很乱,重新整理了一个书签,顺手删除了一个广告页。...12. GWT与Flex整合 13. 图片缓存 CSS Sprite 14. 本地化 15. 其他高级功能

    smartGwt、spring、Mybatis整合

    smartGwt、spring、Mybatis整合;一个登录和一个分页查询功能;根据用户获取相应的权限;gwt2.4、内付数据表

    GWTEXT 与Hibernate整合实例

    GWTEXT 与Hibernate整合实例,在Eclipse3.3测试过,连接Oracle数据库

    GWT安装和使用

    GWT(Google Web Toolkit) 是 Google 最近推出的一个开发 Ajax 应用的框架,它支持用 Java 开发和调试 Ajax 应用,本文主要介绍如何利用 GWT 进行 Ajax 的开发。 Ajax技术是当前开发web应用的非常热门的技术,也是Web...

    smartgwt5.0

    很多扩展库都利用 GWT,对现有的 JavaScript 库做 Java 封装,为 GWT 提供了更多可用的 API。SmartGWT 是其中的佼佼者,它的底层使用 SmartClient 这个成熟的 Ajax 库。SmartGWT 从 2008 年开始开发,一直处在非常...

    GWT框架和Echarts 使用

    GoogleWebToolkit(GWT)是一个Java软件开发框架用于开发类似于GoogleMaps和Gmail的AJAX应用程序。GWT的设计参考JavaAWT包设计,类命名规则、接口...在 GWT框架中使用 Echarts 。 注意: 本项目jar包已删除,请新建项目。

    gwt使用手册

    gwt使用手册,详细介绍gwt使用手册和各种组件的调用配置

    gwtext无缝整合struts2

    研究gwt+ext+ssh框架整合编写的一个实例,实例中包括一个说明文档(google plugin创建gwt实例说明、gwt-ext实例的创建、gwt-ext与struts2整合实例说明);还包括文档对应的myeclipse项目。相关的包稍微有点大,没有...

    GWT(Google Web Toolkit)

    GWT(Google Web Toolkit) 是 Google 最近推出的一个开发 Ajax 应用的框架,它支持用 Java 开发和调试 Ajax 应用,本文... 如果你觉得GWT提供的API不能满足需求,你可以利用JSNI将Javascript语句直接嵌入至Java代码中。

    gwt 练习 gwt学习

    gwt 练习gwt 练习gwt 练习gwt 练习

    gwt+spring+hibernate

    gwt+spring+hibernate整合例子,导入myeclipse中(要安gwt插件)即可用,数据库自己去代码中查看。包是精简版的,去掉很多不必要的包

    Ext-Gwt(GWT)开发实例(整合Spring +Hibernate)

    NULL 博文链接:https://digga2012.iteye.com/blog/1450696

    [GWT揭秘].徐彬.扫描版

    本书内容全面,不仅详细介绍了 GWT 的主要模块和控件、GWT 与 JavaScript 对象的交互、在 GWT 中使用 XML、开发自定义 GWT 控件、GWT-RPC 和 Ext GWT 等必备的基础知识,而且还深入讲解了 GWT 与 Flex整合、图片缓存...

    gxt.jar(gwt开发使用)

    gwt 开发

    GWT整合Hibernate的一个小实例

    gwt与hibernate整合,一个简单的新增和查询,只有一张表(两个字段),大家根据hibernate的配置文件自己生成吧

    GWT使用大全

    GWT使用大全, GWT配置, GWT使用方法,GWT手册,GWT使用手册

Global site tag (gtag.js) - Google Analytics