Intereting Posts
AppWidget: экземпляр не отображается после завершения работы конфигурации на некоторых устройствах Приложение не отображается в Android Market для планшетов Motorola XOOM Недавно выпущена «Аутентификация с сервисами Google Play», проблемы с получением токена через GoogleAuthUtil.getToken Genie Effect Animation в Android Получить локали для tts Android WebView выбрасывает «запросы на кросс-поиск, поддерживаемые только для исключения http» при попытке загрузить ресурс с диска Как установить ширину и высоту изображения, когда он установлен в drawableLeft Программно отключить android: windowActionBarOverlay стиль из панели действий Содержимое адаптера изменилось, но ListView не получил уведомление – с помощью AsyncTask Связывание MvvmCross с несколькими свойствами в управлении Android с использованием синтаксиса swiss Как отображать изображение в TextView от Android? Android In App Subscription всегда возвращает начальную квитанцию, я никогда не получаю обновление Сохранение дочерних коллекций с OrmLite на Android с объектами, созданными из Jackson Координаты экрана Android OpenGL ES 2.0 с координатами мира Индикатор отображения ящика Android Navigation для фрагментов нижнего уровня

Как вызвать функцию javascript непосредственно из активности на Android?

Я хотел знать, есть ли способ, который я могу назвать функцией JavaScript из собственной активности Android.

Я наткнулся:

webView.loadUrl("javascript:hello()"); 

Но это не сработало для меня.

Кроме того, как Android узнает, на какой странице html эта функция JavaScript находится?

Solutions Collecting From Web of "Как вызвать функцию javascript непосредственно из активности на Android?"

Android может вызывать только метод javascript, если html-страница загружается в webView

 webView.loadUrl("javascript:hello()"); 

Вызовет метод hello writen на странице html, только если страница, содержащая этот метод, в настоящее время загружается в элемент управления веб-просмотром

Первый звонок

 webview.loadUrl("Your html page url"); 

Затем позвоните

 webView.loadUrl("javascript:hello()"); 

Если у кого-то есть проблемы с этим, как и я, вам нужно вызвать функцию javascript после завершения загрузки страницы, иначе javascript не будет вызываться:

  webviewer.loadUrl("file:///android_asset/mypage.html"); webviewer.setWebViewClient(new WebViewClient() { public void onPageFinished(WebView view, String url) { webviewer.loadUrl("javascript:hello()"); } }); 

Прежде чем использовать JavaScript, сначала вам нужно проверить, включен ли Javascript или нет в вашем приложении, используя «getJavaScriptEnabled ()» (его значение по умолчанию FALSE). И метод loadUrl () используется только для загрузки текущей страницы. Он ничего не делает с JavaScript.

ПРИМЕР:

Настройка WebView

// инициализация webview

 webView = (WebView) findViewById(R.id.webView); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); 

Загрузка HTML в WebView

 webView.loadUrl("file:///android_asset/testhtml.html"); 

Настройка WebChromeClient на webView

 webView.setWebChromeClient(new MyJavaScriptChromeClient()); 

Класс MyJavaScriptChromeClient Здесь мы должны переопределить метод onJsAlert () для обработки функции оповещения JavaScript.

 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(MainWebViewActivity.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-файл: testhtml.html:

 <html> <body > <div onclick="alert('hello')"> Click Me !! </div> </body> </html> 

Как это работает ? Когда текст «Click Me !!» На экране WebView вызывается функция android onJsAlert (представление WebView, строковый URL-адрес, сообщение String, конечный результат JsResult). Параметр оповещения скопирован в параметр сообщения функции onJsAlert. И остальная часть обработки выполняется там. Здесь мы показываем AlertDialog.