成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android開發之WebView中捕獲JavaScript事件

移動開發 Android
我們在Android工程中使用了WebView,打開一個網銀支付url,點擊支付的時候,他們會在網頁中使用js彈出一個詢問框。

前幾天,在項目中遇到一個BUG:

我們在Android工程中使用了WebView,打開一個網銀支付url,點擊支付的時候,他們會在網頁中使用js彈出一個詢問框,js代碼如下:

  1. function testConfirm() {  
  2.     if(confirm("pay or not?")) {  
  3.       alert("yes! i do");  
  4.     }  
  5.     else 
  6.     {  
  7.       alert("no!!!");  
  8.     }  

我在webView沒有對js這個事件進行處理,就導致流程不能正確執行下去了。

查了一下api,最后是這樣解決了:

首先,設置webView屬性:

  1. mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 

其次,設置WebChromeClient:

  1. mWebView.setWebChromeClient(new WebChromeClient() { 
  2.  
  3.             @Override 
  4.             public boolean onJsAlert(WebView view, String url, String message, 
  5.                     final JsResult result) { 
  6.                 AlertDialog.Builder builder = new AlertDialog.Builder(mContext); 
  7.                 builder.setMessage(message) 
  8.                         .setNeutralButton("確定"new OnClickListener() { 
  9.                             @Override 
  10.                             public void onClick(DialogInterface arg0, int arg1) { 
  11.                                 arg0.dismiss(); 
  12.                             } 
  13.                         }).show(); 
  14.                 result.cancel(); 
  15.                 return true
  16.             } 
  17.  
  18.             @Override 
  19.             public boolean onJsConfirm(WebView view, String url, 
  20.                     String message, final JsResult result) { 
  21.                 // TODO Auto-generated method stub 
  22.                 Log.i(TAG, "onJsConfirm" + "," + "url: " + url); 
  23.  
  24.                 DialogUtils.dialogBuilder(mContext, "溫馨提示", message, 
  25.                         new DialogCallBack() { 
  26.  
  27.                             @Override 
  28.                             public void onCompate() { 
  29.                                 Log.i(TAG, "onJsConfirm,onCompate"); 
  30.                                 result.confirm(); 
  31.                             } 
  32.  
  33.                             @Override 
  34.                             public void onCancel() { 
  35.                                 Log.i(TAG, "onJsConfirm,onCancel"); 
  36.                                 result.cancel(); 
  37.                             } 
  38.                         }); 
  39.                 return true
  40.             } 
  41.         }); 

如此,webView中就可以捕獲javascript的alert()、confirm()事件了。

測試用的url:http://liucundong.sinaapp.com/testWebView.php

責任編輯:張葉青 來源: 看看新聞
相關推薦

2013-05-21 14:22:29

Android游戲開發捕獲屏幕雙擊事件

2016-10-24 14:04:24

2013-04-15 15:22:06

2010-08-04 10:17:17

Android開發WebView組件

2015-03-03 15:53:31

Android控件

2016-10-20 19:07:10

Javascript事件冒泡與捕獲

2014-07-29 11:16:07

2014-09-17 10:57:30

AndroidWebview安全交互

2009-07-02 09:56:24

導入事件驅動技術JSP Servlet

2015-02-03 14:45:55

android全局異常

2011-06-16 14:38:18

JavaScript事件委托

2010-04-12 15:12:57

Meego開發

2013-05-21 11:33:11

Android游戲開發按鍵中斷事件

2014-07-30 14:22:41

AndroidWebView內存泄漏

2009-06-17 09:48:11

javascript手事件參考

2009-08-06 11:24:50

ASP.NET服務器控

2009-12-30 14:28:06

Silverlight

2011-04-06 15:33:37

Delphi

2021-11-11 11:24:54

JavaScript模型事件

2025-03-19 10:22:09

JavaScript編程語言開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美成人猛片aaaaaaa | 在线观看视频一区 | 一区二区三区四区av | 巨大荫蒂视频欧美另类大 | 欧美日韩成人影院 | 4h影视| 一区二区三区不卡视频 | 特黄色一级毛片 | 一道本在线 | 久久精品视频免费观看 | 欧美精品一区二区在线观看 | 国产一区二区三区在线免费观看 | 欧美日韩综合 | 91免费版在线观看 | 国产乱码精品一区二区三区五月婷 | 国产欧美视频一区二区三区 | 久久久久无码国产精品一区 | av在线免费观看网站 | 91精品国产色综合久久不卡98口 | 久热中文字幕 | 精品欧美一区二区三区久久久 | 日韩欧美精品 | 国内精品视频在线观看 | 久久成人av电影 | 久久这里只有精品首页 | 亚洲一区二区三区在线免费观看 | 亚洲视频中文字幕 | 亚洲成人久久久 | 亚洲福利网 | 日韩一区二区三区视频在线播放 | 91视频中文| 超碰激情 | 综合久久99 | 免费亚洲网站 | 一级黄色生活视频 | 久久久久久一区 | 国产99久久精品一区二区永久免费 | av香蕉 | 国产精品成人在线播放 | 国产在线一区二区 | 一区二区三区中文字幕 |