我在开发我的 Codename One 应用程序时遇到了障碍。我项目中的一个类从网站解析 3 个特定的 html“td”元素,并将文本保存到字符串中,然后我将文本数据输入到 Codename One 多按钮中。我最初使用 jSoup 进行此操作,但很快意识到 Codename One 不支持 3rd 方 jar 文件,因此我使用了这种方法,如下所示。
public void showOilPrice() {
if (current != null) {
current.show();
return;
}
WebBrowser b = new WebBrowser() {
@Override
public void onLoad(String url) {
BrowserComponent c = (BrowserComponent) this.getInternal();
JavascriptContext ctx = new JavascriptContext(c);
String wtiLast = (String) ctx.get("document.getElementById('pair_8849').childNodes[4].innerText");
String wtiPrev = (String) ctx.get("document.getElementById('pair_8849').childNodes[5].innerText");
String wtiChange = (String) ctx.get("document.getElementById('pair_8849').childNodes[8].innerText");
Form op = new Form("Oil Prices", new BoxLayout(BoxLayout.Y_AXIS));
MultiButton wti = new MultiButton("West Texas Intermediate");
Image icon = null;
Image emblem = null;
wti.setEmblem(emblem);
wti.setTextLine2("Current Price: " + wtiLast);
wti.setTextLine3("Previous: " + wtiPrev);
wti.setTextLine4("Change: " + wtiChange);
op.add(wti);
op.show();
}
};
b.setURL("https://sslcomrates.forexprostools.com/index.php?force_lang=1&pairs_ids=8833;8849;954867;8988;8861;8862;&header-text-color=%23FFFFFF&curr-name-color=%230059b0&inner-text-color=%23000000&green-text-color=%232A8215&green-background=%23B7F4C2&red-text-color=%23DC0001&red-background=%23FFE2E2&inner-border-color=%23CBCBCB&border-color=%23cbcbcb&bg1=%23F6F6F6&bg2=%23ffffff&open=show&last_update=show");
}
此方法在模拟器中有效(并给出“depreciated API”警告),但当我在签名后在线提交构建时不会运行。我已经导入了 parse4cn1 和 cn1JSON 库并经历了一系列的障碍,但我在提交时仍然收到构建错误。如果存在,我想重新开始并使用另一种方法。有没有一种方法可以重写这段代码而不必使用这些库?也许通过使用 XMLParser 类?