初窥JSNI

  • 因为工作的原因,接触学习了GWT。现阶段需要在Java里调用strophe.js,折腾了许久终于成功调用了外部的js文件,便来把自己的流程记下,献给与我一般困惑的人,也避免以后忘记后得重新研究。

  • 使用JSNI编写内部js,这个很简单,一般不会出错,唯一需要注意的就是native关键字以及编写格式,“/- -/”里面的代码为js代码。

public static native void alert(String msg)/*-{
        $wnd.alert(msg);
    }-*/;
  • 使用JSNI调用外部js。此处一个很关键的地方是“$wnd.”,我先前的测试没写这个,所以eclipse一直在报错说找不到Strophe。
public static native void onConnect(int status)/*-{
        if (status == $wnd.Strophe.Status.CONNECTED) {
            $wnd.alert('connect');
        } else {
            $wnd.alert(status);
        }
    }-*/;
  • 在js里调用Java方法。这里唯一要注意的就是方法得写全名,在哪个包,哪个类都得写清楚。
public static native void Connect()/*-{
        var BOSH_SERVICE = '/http-bind';
        var connection = null;
        var jid = 'a@xmpp.demo';
        connection = new $wnd.Strophe.Connection(BOSH_SERVICE);
        connection.connect(jid, '1', @com.healthFriend.healthApp.client.JSNI.JSNIDemo::onConnect(I));
    }-*/;
  • 各类JSNI调用js的文章在网上很多,若有其他问题多多查找。对着自己的代码一遍遍的比对,看的多了不知觉的就把问题解决了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值