#android #html #webview
#Android #HTML #webview
Вопрос:
Кто-нибудь знает способ определить, нажата ли кнопка с этим кодом ниже в исходном коде веб-страницы в My apps webview?
html-источник кнопки:
<input id="testBtn" name="testBtn" type="button" value="Test Button"
class="button" onclick="test.run(this.id,'onclick');return false;"
onkeydown="test.run(this.id,'onkeydown');return false;" title="Test Button">
а затем произнести тост?
P.s. Я не могу изменить html-код, это не мой сайт
Ответ №1:
это будет легко, просто определите свой интерфейс Javascript
final class jocJavaScriptInterface {
jocJavaScriptInterface() {
}
String myEvent;
public void run(int id,String event) { //run method defined into your html.
this.myEvent = event;
mHandler.post(new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(),myEvent " my ButtoN!", Toast.LENGTH_LONG).show();
}
});
}
}
Добавьте интерфейс Javascript в свой webview
WebContent.addJavascriptInterface(new jocJavaScriptInterface(), "test");
WebContent.loadUrl("http://www.foo.com/Androidtest.html"); //load your Page with the button...
WebSettings webSettings = WebContent.getSettings();
webSettings.setSavePassword(false);
webSettings.setSaveFormData(false);
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(true);
Комментарии:
1. Будьте осторожны при использовании addJavascriptInterface, это оставляет брешь в безопасности приложения. Разработчики Android пишут: Внимание: Использование addJavascriptInterface() позволяет JavaScript управлять вашим приложением для Android. в developer.android.com/guide/webapps/webview.html