Tôi muốn thực hiện cuộc gọi đồng bộ với một số mã Java trong ứng dụng Android của mình.Gọi chức năng Java từ JavaScript qua Android WebView
Tôi đang sử dụng giải pháp này: https://stackoverflow.com/a/3338656
My Java mã:
final class MyWebChromeClient extends WebChromeClient {
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
Log.d("LogTag", message);
result.confirm();
return true;
}
}
My mã JavaScript:
<html>
<script>
function java_request(){
alert('test');
}
</script>
<body>
<h2>Welcome</h2>
<div id="area"></div>
<form>
<input type="button" value="java_call" onclick="java_request()">
</form>
</body>
</html>
Khi tôi bấm vào nút java_call
, nút đi vào trạng thái ép. Tôi có thể thấy 'test'
trong nhật ký bảng điều khiển. Mọi thứ đều bình thường cho đến đây.
Vấn đề là, nút không bao giờ quay trở lại trạng thái bình thường. Nó vẫn ở trạng thái ép. Có thể việc thực thi JavaScript bị hỏng hay gì đó?
Tại sao nút này không bao giờ trở về trạng thái bình thường?
cảm ơn thông tin, tôi đã thấy giải pháp này. vì có một lỗi trong 2.3.X cho giải pháp này, tôi không muốn sử dụng nó. workaround là rất tuyệt vời. – ozkolonur
@ozkolonur Tôi đã sử dụng tính năng này với tất cả các phiên bản Android 2.2+, chưa bao giờ thấy bất kỳ lỗi nào. Bạn có thể chia sẻ nó là gì không. Một liên kết cũng rất được hoan nghênh. –
http://code.google.com/p/android/issues/detail?id=12987 – ozkolonur