免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2723 | 回复: 0
打印 上一主题 下一主题

在webview中访问互联网应用,碰到弹出窗口怎么办? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-21 16:09 |只看该作者 |倒序浏览
在webview中访问互联网应用,碰到弹出窗口怎么办?






webview加载了一个页面,页面里点某一个button时候弹出一个确认对话框,这个对话框怎么也不显示如果直接用系统自带的浏览器是可以弹出来的请问是怎么回事?webview加载了一个页面,页面里点某一个button时候弹出一个确认对话框,这个对话框怎么也不显示如果直接用系统自带的浏览器是可以弹出来的

请问是怎么回事?


解决方法:(未经证实)

1。

重载WebChromeClient的onJsConfirm方法
  1. final Context myApp = this;
  2. final class MyWebChromeClient extends WebChromeClient {
  3.     @Override
  4.     public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) {
  5.         new AlertDialog.Builder(myApp)
  6.         .setTitle("App Titler")
  7.         .setMessage(message)
  8.         .setPositiveButton(android.R.string.ok,
  9.                 new DialogInterface.OnClickListener()
  10.         {
  11.             public void onClick(DialogInterface dialog, int which)
  12.             {
  13.                 result.confirm();
  14.             }
  15.         })
  16.         .setNegativeButton(android.R.string.cancel,
  17.                 new DialogInterface.OnClickListener()
  18.         {
  19.             public void onClick(DialogInterface dialog, int which)
  20.             {
  21.                 result.cancel();
  22.             }
  23.         })
  24.         .create()
  25.         .show();

  26.         return true;
  27.     }
  28. }
复制代码
2。

重写onCreateWindow即可
  1. @Override
  2.                 public boolean onCreateWindow(WebView view, boolean dialog,
  3.                         boolean userGesture, Message resultMsg) {
  4.                     WebView childView = new WebView(getActivity());
  5.                     final WebSettings settings = childView.getSettings();
  6.                     settings.setJavaScriptEnabled(true);
  7.                     childView.setWebChromeClient(this );
  8.                     WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
  9.                     transport.setWebView(childView);
  10.                     resultMsg.sendToTarget();
  11.                     mHadOnCreateWindow = true;
  12.                     return true;
  13.                 }
复制代码
记得要
  1.   final WebSettings settings = mWebView.getSettings();
  2.        settings.setJavaScriptEnabled(true);
  3.        settings.setJavaScriptCanOpenWindowsAutomatically(true);
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP