如何从Web视图中调用对话框? [英] How can I call a dialog from a webview?

查看:49
本文介绍了如何从Web视图中调用对话框?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个webview和一个类,该类的函数将与webview中的javascript一起使用

I have a webview and a class with functions that will be used with javascript inside the webview

具有函数(WebAppInterface.java)的类:

class with functions (WebAppInterface.java):

public class WebAppInterface {
    Context mContext;

    WebAppInterface(Context c) {
        mContext = c;
    }

    @JavascriptInterface
    public void closeApp() {
        ((Activity)mContext).finishAffinity();
    }

    @JavascriptInterface
    public void refresh() {
        Intent i = new Intent(mContext, MainActivity.class);
        mContext.startActivity(i);
        ((Activity)mContext).finish();
    }
}

如何在此文件内调用/创建Dialog类?

How can I call/create a Dialog class inside this file?

我试图打给:

Dialog ex = new Dialog();
ex.show(getSupportFragmentManager(), "Dialog");

但是它什么都不做

推荐答案

我希望您已经添加了活动:

I hope you have added in your activity:

WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.addJavascriptInterface(new WebAppInterface(this), "Android");

WebAppInterface不应扩展活动:

WebAppInterface should not extend Activity:

public class WebAppInterface {
Context mContext;

/** Instantiate the interface and set the context */
WebAppInterface(Context c) {
    mContext = c;
}

/** Show a toast from the web page */
@JavascriptInterface
public void showDialog(String text) {
    //here code of alert dialog 
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
    builder.setTitle("abcd");
    builder.setMessage(text);
    builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }
    });
    Dialog dialog = builder.create();
    dialog.show();
}}

现在您在课堂上拥有活动上下文,因此您可以在课堂上执行所有其他任务

Now you have activity context in class so you can perform all other task in this class

这篇关于如何从Web视图中调用对话框?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆