当前位置: 首页 > 面试题库 >

从Java调用javascript函数

爱刚捷
2023-03-14
问题内容

我使用PhoneGap开发了一个应用程序。我得到了一项在后台进行本地编码的服务(该服务和手机缺口应用程序在同一项目中)。不幸的是,我想从此服务中调用javascript函数。因此,我在网上搜索并创建了一些有趣的东西:创建一个扩展Plugin的类并在其中进行一些处理。然后我发现了这个:

this.ctx.sendJavascript("myJavascriptFunction");

我用此代码进行了测试,但是发生了一些错误:

java.lang.NullPointerException

这是我测试的方式:

class c = new class();
c.execute("myFunction",null,null);

在类c中,execute方法如下:

public PluginResult execute(String action, JSONArray args, String callbackId) {
if (action.equals("myFunction")){
    Log.d(TAG,"start actions to do");
    this.ctx.sendJavascript("nameOfFunctionToLaunch");
    Log.d(TAG,"end actions to do");
    return new PluginResult(PluginResult.Status.OK);
}
}

当应用启动时,我有第一个

Log.d(TAG,"start actions to do");

我怎么解决这个问题 ?


问题答案:

最终,我找到了解决方案:实际上, NullPointerException* 位于 ctx上 。要修复它,我像这样设置对象 c
Context 值:
*

c.setContext(use_An_Object_Of_Type_PhonegapActivity);

要获取对象,我可以使用以下方法从AppActivity中获取它:

public class CloudPhoneAppActivity extends DroidGap {
private class NoScaleWebViewClient extends GapViewClient {

    public NoScaleWebViewClient(DroidGap ctx) {
        super(ctx);
        myApp.ctx = ctx;
    }

    public void onScaleChanged(WebView view, float oldScale, float newScale) {
        Log.d("NoScaleWebViewClient", "Scale changed: " + String.valueOf(oldScale) + " => " + String.valueOf(newScale));
    }
}
/** other stuff after**/ 
}

所以最后这是解决方案:

class c = new class();
c.setContext(myApp.ctx);
c.execute("myFunction",null,null);

前面描述的 execute 方法没有做任何更改。但是请注意如何调用javascript函数。

二湾



 类似资料:
  • 问题内容: 是否可以从Javascript调用Java(GWT)方法?从文档中也不清楚。http://code.google.com/intl/zh- CN/webtoolkit/doc/latest/DevGuideCodingBasicsJSNI.html上的 所有示例都演示了如何从JSNI(而非JS)函数调用Java函数。 更新1 这是一个Java代码: 这是html中的呼叫者按钮示例: 这

  • 问题内容: 我正在用ASP.NET编写网页。我有一些JavaScript代码,并且有一个带有click事件的Submit按钮。 是否可以使用JavaScript的click事件调用我在ASP中创建的方法? 问题答案: 好吧,如果您不想使用Ajax或任何其他方式来执行此操作,而只希望进行正常的ASP.NET回发,则可以按照以下方法进行操作(不使用任何其他库): 虽然有点棘手… :) 一世。在您的代码

  • 问题内容: 有人可以提供从CodeBehind调用JavaScript函数的好示例,反之亦然吗? 问题答案: 您可以尝试这样:

  • 问题内容: 有没有办法可以通过JS函数运行php函数? 像这样的东西: 我基本上想运行php函数,当我单击名为“ Test”的href时,它将调用php函数。 问题答案: 本质上,这就是AJAX的作用。页面加载,然后将事件添加到元素。当用户导致事件被触发时(例如,单击某些内容),您的Javascript使用XMLHttpRequest对象将请求发送到服务器。 服务器响应后(大概带有输出),另一个J

  • 问题内容: 我想在我的Android应用程序中对某些Java代码进行同步调用。 我的Java代码: 我的JavaScript代码: 当我点击按钮时,按钮进入按下状态。我可以在控制台日志中看到。一切正常,直到这里。 问题是,按钮永远不会回到其正常状态。它保持在按下状态。也许JavaScript执行中断了还是什么? 为什么按钮从不返回其正常状态? 问题答案: 我认为这不是让JavaScript执行Ja

  • 问题内容: 通过使用Java Scripting API,我能够在Java中执行JavaScript。但是,有人可以解释一下我需要添加到此代码中以便能够调用C:/Scripts/Jsfunctions.js中的函数吗? 问题答案: 使用读剧本