在BlackBerry中使用Object invoke(Object thiz,Object [] args)方法

时间:2012-11-08 10:06:31

标签: blackberry browserfield

有人可以解释一下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文档,但我仍然无法理解如何将值传递给这两个参数并检索它们。

1 个答案:

答案 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中使用的参数。试试吧......