当前位置: 首页 > 知识库问答 >
问题:

如何使用JavascriptInterface将Android的警报返回值返回到WebView?

薄烨
2023-03-14

我已经为我的浏览器游戏创建了一个AndroidWebView应用程序。我使用Javascript警报询问用户是否真的想要重置分数。但是我想使用Android警报而不是Javascript警报。所以我创建了一个Javascript接口。

public class AlertJSInterface {
private Context context;

AlertJSInterface(Context c) {
    context = c;
}

@JavascriptInterface
public boolean alert(String title, String message) {
    AlertDialog.Builder alert = new AlertDialog.Builder(context);
    alert.setTitle(title);
    alert.setMessage(message);
    alert.setCancelable(true);
    alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

        }
    });
    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int id) {
            dialog.cancel();
        }
    });
    alert.show();

    //want to return true if clicked ok
}

现在我需要Javascript中Android警报的返回值。问题是Android警报有一个ClickListener。但是如何获取值并将其返回到Javascript?

if(AndroidAlert.alert(resetScoreTitle, resetScoreAck) === true) {
    resetAll();
}

共有1个答案

盛超
2023-03-14

如果在用户单击“确定”按钮后调用js函数会怎么样。就像:

alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
       myWebView.loadUrl("javascript:resetAll();");
    }
});
 类似资料:
  • 问题内容: 我正在使用Postgresql 8.3,并具有以下简单功能,该功能会将a返回 给客户端 现在,我可以使用以下SQL命令来调用此函数并操纵返回的游标,但是游标名称是由PostgreSQL自动生成的 此外,如38.7.3.5中所述,显式地将游标名称声明为函数的输入参数 。返回游标。我可以声明自己的游标名称并使用此游标名称来操纵返回的游标,而不是为我自动生成的Postgresql吗?如果不是

  • 问题内容: 我在使用Ajax时遇到问题。 问题是,在获得ajax响应之前,它会返回cnt。因此它总是返回NULL。 有没有办法使正确的返回响应值? 谢谢! 问题答案: 由于AJAX请求是异步的,因此您的cnt变量将在请求返回并调用成功处理程序之前返回。 我建议重构您的代码以解决此问题。 一种方法是从AJAX请求的成功处理程序中调用调用了GetGrantAmazonItemCnt()的任何函数,此方

  • 问题内容: 我有一个javascript函数,该函数调用通用函数对服务器进行ajax调用。我需要从ajax调用的回调函数中检索结果(true / false),但是我得到的结果始终是’undefined’。 如果没有我的全部逻辑,泛型函数的超级简化版本将是: 调用它的函数将类似于: “结果”变量始终为“未定义”,并且对其进行调试,我可以看到正在执行回调函数的“返回真”行。 为什么会这样?如何将返回

  • 问题内容: 我使用此建议执行了JavaScript,并且想从此脚本返回一个值。 问题答案: 您可以像这样返回值: Java: 蟒蛇:

  • 这一行是: 我在和上尝试了和,但仍然给出相同的错误

  • 问题内容: 我想返回axios的响应,但始终返回的响应是不确定的: 控制台始终记录为未定义。他们以任何方式返回此响应。 问题答案: console.log不会等到该功能完全完成后再进行记录。这意味着您将必须进行异步处理,主要有两种方法: 回调-这是当您将函数作为参数传递到现有函数中时,将在axios调用完成后执行。这是如何与您的代码一起使用的: Promise-实现此目的的最简单方法是将其放在函数