日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Android開發(fā)之WebView中捕獲JavaScript事件

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

目前創(chuàng)新互聯(lián)建站已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計、倉山網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

我們在Android工程中使用了WebView,打開一個網(wǎng)銀支付url,點擊支付的時候,他們會在網(wǎng)頁中使用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這個事件進(jìn)行處理,就導(dǎo)致流程不能正確執(zhí)行下去了。

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

首先,設(shè)置webView屬性:

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

其次,設(shè)置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


分享文章:Android開發(fā)之WebView中捕獲JavaScript事件
文章起源:http://m.5511xx.com/article/codhjsi.html