有人可以解释一下invoke
方法中的参数如何正确使用。
browserField.extendScriptEngine("interesting.test", new ScriptableFunction() {
public Object invoke(Object thiz, Object[] args) throws Exception {
Dialog.alert("Done");
return super.invoke(thiz, args);
}
});
我在HTML文件中调用了以上方法,如下所示。
<button type="button" onclick="interesting.test()">Display Alert</button>
当我使用以下代码
时System.out.println("# thiz : " + thiz.toString());
结果是
[0.0] # thiz : net.rim.device.apps.internal.browser.olympia.dom.ScriptObjectShadow@a2f32d2a
当我使用此代码时
System.out.println("# args : " + args.length);
结果是
[0.0] # args : 0
在控制台上打印。
我在invoke方法中使用了那些System.out方法。我也参考了API文档,但我仍然无法理解如何将值传递给这两个参数并检索它们。
答案 0 :(得分:0)
你可以试试这个,它对我有用
try{
browserField.extendScriptEngine("interesting.test", new ScriptableFunction() {
public Object invoke(Object thiz, static Object[] args) throws Exception {
Dialog.alert(String.valueOf(args[0]).toString());
}
});
} catch(Exception e){
//
}
然后从html执行此操作
<button type="button" onclick="interesting.test('cool')">Display Alert</button>
因为这些参数只是对象数组,可能意味着同时具有多个参数以实现灵活性,它类似于javascript中使用的参数。试试吧......