Хобрук: Ваш путь к мастерству в программировании

Проблема с пользовательским поиском Google из телефонного разговора

Я пытаюсь создать приложение PhoneGap, которое частично предоставляет доступ к системе пользовательского поиска. Я выполнил инструкции Google и создал следующий HTML-файл, который отлично работает в браузере настольного компьютера при доступе к нему как file: ///text.html. Когда я использую его в качестве начальной страницы с разрывом телефона, он отлично отображается. Есть текстовое поле и кнопка «поиск». Однако, когда я нажимаю «Поиск», я получаю «Ошибка приложения» на устройстве Android, в котором говорится, что «файл: ///google.com/cse? Q = .... не может быть найден».

CustomSearchControl вставляет на страницу некоторый код - в основном форму. Хотя я мог бы манипулировать DOM в элементе cse, чтобы исправить схему URL-адресов, но я не вижу URL-адрес google.com с помощью Firebug.

Ищете способ решить проблему или обойти ее. Вот HTML-код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google AJAX Search API Sample</title>
    <script src="https://www.google.com/jsapi?INSERT-YOUR-KEY"></script>
    <script type="text/javascript">
        google.load('search', '1');
        google.setOnLoadCallback(function(){
          var search = new google.search.CustomSearchControl('007447616601297022092:7nhsxzpy6ao').draw('cse');
        }, true);
    </script>
  </head>
  <body style="font-family: Arial;border: 0 none;">
    <div id="cse" style="width:100%;">Loading...</div>
  </body>
</html>

Ответы:


1

Я смог найти обходной путь после долгих попыток ...

Хотя я не уверен, я считаю, что корень проблемы в том, что скрипт Google видит, что он запускается из локальной файловой системы устройства, и по ошибке пытается отправить форму в file: ///.

Я использую Sencha Touch поверх PhoneGap. Я подумал, что смогу использовать некоторые функции доступа к dom и компоненту для управления событием отправки. Однако Google JS после сокращения становится почти непостижимым. Даже после разминирования у вас есть код вроде aob. мой Бог.

Поэтому я просто набрал и использовал iframe в приложении Sencha, чтобы загрузить на устройство скрипт, показанный в вопросе выше. Некоторый код от Конора Армстронга был очень полезен для того, чтобы все это хорошо работало в Sencha Touch.

15.07.2011
Новые материалы

Прогресс в технологии Трансформеров часть 3
Многомасштабный управляющий сигнальный преобразователь для бесфазного синтеза движения (arXiv) Автор: Линтао Ван , Кун Ху , Лей Бай , Юй Дин , Ваньли Оуян , Чжиюн Ван . Аннотация:..

Представляем поддержку компонентов Vue.js. Мгновенный HMR и многое другое.
Хотя у FuseBox уже был плагин Vue, он был базовым и не имел многих функций, которые делали работу с Vue.js такой приятной. Однако с этим выпуском мы рады сообщить, что в FuseBox..

Приключения в Javascript, часть 1
Я продолжаю думать о том, чтобы писать больше, но чем больше я думаю об этом, тем меньше я это делаю. Итак, сегодня я перестал думать и начал писать. Отсюда можно только спускаться… В..

Понимание дженериков в TypeScript: подробное руководство
Введение TypeScript, строго типизированный надмножество JavaScript, хорошо известен своей способностью улучшать масштабируемость, удобочитаемость и ремонтопригодность приложений. Одной из..

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..