簡體   English   中英

從JSNI到Java傳遞字符串 - GWT

[英]Passing String from JSNI to Java - GWT

我在GWT項目中將String傳遞給Java方法時遇到問題:

public final native String waveIt()/*-{
    var instance = this;
    var data = $wnd.Waverecorder.data();
    var strData = data.toString();
    var arr = strData.split(',');
    for (var i = 0; i < arr.length; i++) {
        var data = arr[i];
        console.log(data);
        instance.@com.mycode.wave.showcase.client.Showcase::updateWave(Ljava/lang/String;)(data.toString());
    }
}-*/;

從Chrome / Firefox的控制台日志中可以看到我得到了正確的數據(這是我得到的確切日志):

-0.00006103515625
-0.00006103515625
-0.00006103515625
-0.05072021484375
-0.553833007812
 (more data omitted)

當GWT java方法接收到data它為空。 可能是什么原因?

你是什​​么意思:

當GWT java方法接收到數據時,它為空。

您是否在談論waveIt()應該返回的字符串?

錯誤可能是waveIt()沒有return語句。

  1. 此方法應該為空,因為您不返回字符串-您從該字符串中調用Java方法。

  2. 查看您的代碼,您不需要var instance = this; 您可以刪除實例。 @com之前。

  3. 您兩次聲明var數據:在循環之前和循環內部。 不用使用data.toString()來調用Java方法,而是可以使用arr [i]來調用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM