我有一個安裝了WebChromeClient的android webview。 在網頁中的某個動作中,我創建了一條帶有消息的JavaScript警報,該消息傳回給onJsAlert方法。WebChromeClient onJsAlert收到未定義消息
然後,根據我打開另一個活動的消息。 這適用於Android> = 4,但不適用於Android 2.3。
在Android 2.3 onJsAlert方法也被調用,但傳遞的信息參數是未定義的某些原因。任何想法爲什麼這可能發生,將非常感激!
我有一個安裝了WebChromeClient的android webview。 在網頁中的某個動作中,我創建了一條帶有消息的JavaScript警報,該消息傳回給onJsAlert方法。WebChromeClient onJsAlert收到未定義消息
然後,根據我打開另一個活動的消息。 這適用於Android> = 4,但不適用於Android 2.3。
在Android 2.3 onJsAlert方法也被調用,但傳遞的信息參數是未定義的某些原因。任何想法爲什麼這可能發生,將非常感激!
下面是我用
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.demo);
try {
webView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.setWebChromeClient(new MyJavaScriptChromeClient());
webView.loadUrl("file:///android_asset/texthtml.html");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private class MyJavaScriptChromeClient extends WebChromeClient {
@Override
public boolean onJsAlert(WebView view, String url, String message,
final JsResult result) {
// handle Alert event, here we are showing AlertDialog
new AlertDialog.Builder(WebActivity.this)
.setTitle("JavaScript Alert !")
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
// do your stuff
result.confirm();
}
}).setCancelable(false).create().show();
return true;
}
}
代碼,這我的HTML文件
<html>
<div onclick="alert('hello')"> Click Me !! </div>
我也是這樣做的......但是我的代碼也能在2.3上運行良好。如果你有任何錯誤?如果是的話,你能否提供你的錯誤日誌 – Meenal
沒有不幸的是,沒有錯誤。唯一相關的日誌:'''的WebView(9457):singleCursorHandlerTouchEvent -getEditableSupport FASLE''','''I/Web控制檯(9457):幻燈片:在不確定的:1''','''d/DEBUG( 9457):JS的消息是:undefined''',最後兩個是從我 – peshkira
確定我應該在這裏發佈我的代碼爲你和你的 – Meenal