如何从 webview 调用对话框?
How can I call a dialog from a webview?
我有一个 webview 和一个 class,其功能将在 webviewjavascript 中使用
class 具有函数 (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();
}
}
如何在这个文件中call/create一个对话框class?
我试过像这样打电话:
Dialog ex = new Dialog();
ex.show(getSupportFragmentManager(), "Dialog");
但它什么也没做
希望您在 activity 中添加:
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.addJavascriptInterface(new WebAppInterface(this), "Android");
WebAppInterface 不应扩展 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();
}}
现在您在 class 中拥有 activity 上下文,因此您可以在此 class
中执行所有其他任务
我有一个 webview 和一个 class,其功能将在 webviewjavascript 中使用
class 具有函数 (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();
}
}
如何在这个文件中call/create一个对话框class?
我试过像这样打电话:
Dialog ex = new Dialog();
ex.show(getSupportFragmentManager(), "Dialog");
但它什么也没做
希望您在 activity 中添加:
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.addJavascriptInterface(new WebAppInterface(this), "Android");
WebAppInterface 不应扩展 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();
}}
现在您在 class 中拥有 activity 上下文,因此您可以在此 class
中执行所有其他任务