【问题标题】:Usage of Object invoke(Object thiz, Object[] args) method in BlackBerry在 BlackBerry 中使用 Object invoke(Object thiz, Object[] args) 方法
【发布时间】:2012-11-08 10:06:30
【问题描述】:

谁能解释一下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

在控制台上打印。

我在调用方法中使用了这两个 System.out 方法。我也参考了 API 文档,但我仍然不明白如何将值传递给这两个参数并检索它们。

【问题讨论】:

    标签: blackberry browserfield


    【解决方案1】:

    你可以试试这个,它对我有用

                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 中使用的参数。那就试试吧……

    【讨论】:

      猜你喜欢
      • 2013-10-20
      • 1970-01-01
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      • 2014-09-03
      • 2015-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多