перехватить вызов JavaScript - PullRequest
0 голосов
/ 06 января 2011

У меня возникла интересная проблема с проектом разработки Android. Мне было поручено связать онлайн-базу данных компании с приложением для Android. В базе данных есть вызов JavaScript, который выглядит следующим образом.

<a href="javascript:foo(9.7);">9.7</a>

Запрос приложения состоял в том, чтобы javascript мог запускаться локально в приложении. Я смог перехватить вызов сценария, переопределив метод onJsPrompt, но не могу получить значение, отправленное сценарию java для обработки ввода пользователя.

Я могу проанализировать данные, как только они будут получены, но я заблудился о том, как получить реальный вызов с веб-сайта в сценарий.

Пробовал функцию getUrl, но она возвращает страницу, на которой я нахожусь, а не вызов скрипта.

Любая помощь / вклад будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 06 января 2011

Я не уверен, что полностью понимаю ваше предполагаемое взаимодействие, но если вы используете встроенный веб-просмотр, возможно, это поможет: https://github.com/scottagarman/Android-JavaScript-Interface-Example

0 голосов
/ 07 января 2011

Оказывается, моя ошибка была досадно простой.Я создал переопределение для onJsPrompt.Отчасти это была уступка между моими коллегами и руководителями, что мы не были готовы к выпуску с требуемым объемом кэширования, и в конце переопределения я не отправил обратно значение, необходимое для ввода пользователем, котороевыглядит примерно так

final EditText input = new EditText(myApp);
                prompt.setView(input);

                prompt.setPositiveButton("Ok", new DialogInterface.OnClickListener()
                {
                    public void onClick(DialogInterface dialog, int whichButton)
                    {
                        Editable value = input.getText();
                        result.confirm(value.toString());*
                    }
                });

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...