Как сохранить и получить доступ к предыдущим сайтам, к которым обращались в WebView

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

Если возможно, я бы хотел, чтобы пользователь возвращался к последнему URL-адресу, который он посетил после нажатия другой кнопки.

Например. Пользователь нажимает кнопку 1 и переходит на google.com, выполняет поиск. Затем пользователь нажимает кнопку 2 и читает несколько сообщений в stackoverflow, после чего решает вернуться к кнопке 1 (google). В идеальном мире пользователь увидит результаты поиска, которые он выполнил по кнопке 1, и не будет перенаправлен обратно на google.com.

Смогу ли я использовать getURL для хранения последнего посещенного URL-адреса, а затем перезагрузить этот URL-адрес, когда пользователь вернется к этой кнопке? Если да, то как мне сохранить URL-адрес? Я совсем новичок в Титаниуме.

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


person Rob88991    schedule 09.05.2016    source источник
comment
Может быть, вы можете использовать модуль tiBrowser для решения вашей проблемы: github.com/jdanthinne/tiBrowser?   -  person Thomas Lemaitre    schedule 09.05.2016
comment
Спасибо, как этот модуль поможет вернуться к последнему посещенному URL-адресу? Я хочу, чтобы у пользователей была навигация назад/вперед, но не панель навигации или строка заголовка   -  person Rob88991    schedule 09.05.2016
comment
Как вы можете видеть в файле Readme, этот виджет создает веб-представление с кнопкой «Назад/вперед», кнопкой «Обновить» и кнопкой «Параметры». Вы можете настроить его, чтобы удалить панель навигации, если хотите.   -  person Thomas Lemaitre    schedule 09.05.2016
comment
Я вижу, спасибо, но, насколько я вижу, это не решает проблему сохранения последнего URL-адреса?   -  person Rob88991    schedule 09.05.2016


Ответы (2)


Попробуйте взглянуть на это событие Ti WebView 'load' слушатель.

  • Вы можете использовать событие загрузки, чтобы узнать, какой URL-адрес в данный момент отображается в веб-просмотре.
  • Чтобы иметь систему навигации, сохраните все URL-адреса в массиве.
  • Чтобы выполнять операции вперед и назад, используйте переменные, чтобы отслеживать, нажал ли пользователь кнопку «назад» или «вперед».

Попробуйте выполнить описанные выше шаги, а до тех пор мы постараемся предоставить вам демонстрационный код. :)

Спасибо

person Prashant Saini    schedule 09.05.2016
comment
Спасибо, я думаю, что у меня есть что-то базовое: webview5.addEventListener('beforeload', function(findCurrentURL) { alert(findCurrentURL.url); }); Однако я не уверен, как сохранить их в виде массива... извините, очень простой вопрос, я уверен! - person Rob88991; 09.05.2016

Виджет tiBrowser https://github.com/jdanthinne/tiBrowser не предоставляет метод получения последней URL. Но вы можете легко добавить его в widget.js https://github.com/jdanthinne/tiBrowser/blob/master/be.grincheux.tiBrowser/controllers/widget.js добавьте это:

function getHistory(){

  return history;

}

exports.getHistory = getHistory;

history — это массив, содержащий все посещенные адреса.

person Thomas Lemaitre    schedule 09.05.2016
comment
Спасибо, это выглядит очень полезным, я посмотрю на это и посмотрю, смогу ли я заставить его работать! - person Rob88991; 09.05.2016