2011-02-05 3 views
4

Я написал фрагмент кода Java, который предназначен для вызова кода Java из Javascript с помощью шлюза android WebView.Передача данных с Javascript на Android WebView

webView = (WebView) findViewById(R.id.captchaView); 
WebSettings ws = webView.getSettings(); 
ws.setJavaScriptEnabled(true); 
webView.loadUrl("https://google.com/"); 

webView.setWebViewClient(BrowserHandler); 
webView.addJavascriptInterface(new IJavascriptHandler(), "cpjs"); 

WebViewClient BrowserHandler = new WebViewClient() { 
    @Override 
    public void onPageFinished(WebView view, String url) { 
     view.loadUrl("javascript:window.cpjs.onPageLoaded(document.body.innerHTML);void(0);"); 
    } 
}; 

final class IJavascriptHandler { 
    IJavascriptHandler() { 
    } 

    public void onPageLoaded(String html) { 
     // this is called from JS 
     Toast t = Toast.makeText(getApplicationContext(), "Yes", 2000); 
     t.show(); 
    } 
} 

Вышеуказанные проверки кода для веб-загрузки страницы и как только страница загрузилась, он будет вызывать функцию яваскрипта, который подвергается воздействию от Java, так что может нести то, что мне нужно от страницы.

Это не работает так, как ожидалось, то, что он делает, просто обновляет страницу каждые несколько секунд. Я не уверен, что здесь не так?

+0

не присылайте мне обновленный код. заранее спасибо –

ответ

2

Ну, есть много вещей, которые довольно странны в том, что вы сделали.

  • С Java вы запускаете Javascript ..., чтобы перезвонить на Java. Вы считаете, что это безопасно.

  • Загружается домашняя страница Google, которая будет выполнять перенаправление при обнаружении браузера Android в последний раз, когда я проверил.

  • Вы пытаетесь отобразить Toast, но вы не знаете, будет ли этот код работать в основном приложении или нет.

+0

Вы правы. Тост будет работать в потоке пользовательского интерфейса. Я просто узнал, что это ошибка в WebView, поэтому это не работает. У меня есть поток в Google Groups для Android, также мне нужно удалить эмулятор от версии 2.3 до 2.2? – Neutralizer

Смежные вопросы