android html5 的弹出窗设置
来源:互联网 发布:网络攻防属于什么专业 编辑:程序博客网 时间:2024/06/05 04:57
webSettings = webView.getSettings();webSettings.setDomStorageEnabled(true);webSettings.setJavaScriptEnabled(true);webSettings.setUseWideViewPort(true);webSettings.setLoadWithOverviewMode(true);webView.setWebViewClient(new MyWebViewClient());webView.setWebChromeClient(new MyWebChromeClient());
这些是基础的没说的
class MyWebChromeClient extends WebChromeClient { // * 覆盖默认的window.alert展示界面,避免title里显示为“:来自file:////” @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { final AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext()); builder.setTitle("温馨提示") .setMessage(message) .setPositiveButton("确定", null); // 不需要绑定按键事件 // 屏蔽keycode等于84之类的按键 builder.setOnKeyListener(new DialogInterface.OnKeyListener() { public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { return true; } }); // 禁止响应按back键的事件 builder.setCancelable(false); AlertDialog dialog = builder.create(); dialog.show(); result.confirm();// 因为没有绑定事件,需要强行confirm,否则页面会变黑显示不了内容。 return true; } /** * 覆盖默认的window.confirm展示界面,避免title里显示为“:来自file:////” */ public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) { final AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext()); builder.setTitle("温馨提示") .setMessage(message) .setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { result.confirm(); } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { result.cancel(); } }); builder.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { result.cancel(); } }); // 屏蔽keycode等于84之类的按键,避免按键后导致对话框消息而页面无法再弹出对话框的问题 builder.setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { return true; } }); // 禁止响应按back键的事件 // builder.setCancelable(false); AlertDialog dialog = builder.create(); dialog.show(); return true;}在h5中可以直接alert
还有等待窗口
public class ProgressDialogUtil { private static Dialog progressDialog; private static int level;//等待框展示层级,只有level=0的时候才能关闭progressDialog public static synchronized void showProgressDialog(Context context) { if (progressDialog == null || context != getDialogBaseContext(progressDialog)) { dismissProgressDialog(); progressDialog = new Dialog(context, R.style.SH_MyDialogStyle); progressDialog.setContentView(R.layout.sh_progress_dialog_layout); progressDialog.setCancelable(true); progressDialog.setCanceledOnTouchOutside(false); progressDialog.show(); } else if (!progressDialog.isShowing()) { progressDialog.show(); } level++; } public static synchronized void dismissProgressDialog() { level--; if (level < 0) { level = 0; } if (progressDialog != null && level == 0 && progressDialog.isShowing()) { progressDialog.dismiss(); progressDialog = null; } } private static Context getDialogBaseContext(Dialog dialog) { if (dialog.getContext() instanceof ContextThemeWrapper) { try { Field mBase = dialog.getContext().getClass().getDeclaredField("mBase"); mBase.setAccessible(true); return (Context) mBase.get(dialog.getContext()); } catch (Exception e) { e.printStackTrace(); } } return dialog.getContext(); }}<style name="SH_MyDialogStyle" parent="android:Theme"> <item name="android:windowBackground">@color/transparent</item> <item name="android:windowFrame">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:layout_gravity">center</item> <item name="android:windowIsFloating">true</item> <item name="android:minWidth">200dp</item> <item name="android:windowCloseOnTouchOutside">false</item> <item name="android:backgroundDimEnabled">true</item> <item name="android:backgroundDimAmount">0.2</item> <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item></style><?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="80dp" android:background="@drawable/bg_numpicker" android:gravity="center_vertical" android:orientation="horizontal" android:paddingLeft="20dp" android:paddingRight="20dp"> <TextView android:id="@+id/sh_textView" android:layout_width="wrap_content" android:layout_height="80dp" android:layout_weight="1" android:gravity="center_vertical|left" android:text="请稍候…" android:textColor="@color/sh_text_black_tips" android:textSize="13sp" /> <ProgressBar style="@style/Widget.AppCompat.ProgressBar" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>/** * js 调用请求等待框显示 */@JavascriptInterfacepublic void showLoding() { ProgressDialogUtil.showProgressDialog(mContext);}/** * js 调用请求等待框消失 */@JavascriptInterfacepublic void dissmissLoding() { ProgressDialogUtil.dismissProgressDialog();}在js中进行调用。明天写点js h5的东西。
0 0
- android html5 的弹出窗设置
- Android的弹出窗口设置
- android studio 将HTML5封装成APK && 设置WebView支持js的Alert,Confirm,Prompt函数的弹出提示框.
- Android:设置PopupWindow 的键盘弹出模式
- 设置弹出的动画
- android 对话框弹出位置和透明度的设置
- android 对话框弹出位置和透明度的设置
- android 对话框弹出位置和透明度的设置
- Android 对话框弹出位置和透明度的设置
- 设置android软键盘,默认不弹出的方法
- android弹出提示框AlertDialog的属性设置
- Android 对话框弹出位置和透明度的设置
- android-弹出键盘以及输入框的设置
- 如何设置Android软键盘的默认不弹出?
- 设置Android软键盘的默认不弹出
- 设置android软键盘,默认不弹出的方法
- Android 多种简单的弹出框样式设置
- android弹出activity设置大小
- vc++6.0 编译执行opencv1.0
- 动态内容爬虫
- 基于S2SH开发必须的jar说明
- Ubuntu下用pyenv进行python环境隔离
- [C++Primer] 第二章 变量和基本类型
- android html5 的弹出窗设置
- 如何才能做到网站高并发访问?
- 51Nod-1284-2 3 5 7的倍数
- mysql大小写
- MyEclipse/Eclipse 优化
- Hibernate的三种状态
- ztree异步加载checked回显
- 利用KVO刷新UITableView和KVO的实现机理
- 279. Perfect Squares