Предмет:
Тип роботи:
Дипломна робота
К-сть сторінок:
70
Мова:
Українська
Name = div. SelectSingleNode («. //h6/a»). InnerText. Trim () ;
newTaxi. WorkCity = div. SelectSingleNode («. //a»). InnerText. Trim () ;
newTaxi. href = div. SelectSingleNode («. //h6/a»). Attributes[«href»]. Value;
PopularTaxi. Add (newTaxi) ; }
Так ми отримуємо список з всіма популярними таксі з головної сторінки сайту.
Рисунок 4. 6 – Сайт
Рисунок 4. 7 – Список таксі
Аналогічним способом заповняються спистки які залишились. А саме список з обраним таксі (телефонні номери).
Рисунок 4. 8 – Обране таксі
Для збереження результату про обране таксі використовується Isolated Settings Storage.
При розробці додатків для Windows Phone в якості основного сценарію на даний момент пропонується використовувати механізм Isolated Storage, який успішно використовується в додатках Silverlight. Давайте спробуємо попрацювати з Isolated Storage.
Isolated Storage припускає, що для кожної програми існує ізольована середу для зберігання данних. Пріложенія не можуть отримувати доступ до сховища інших додатків (в основному з міркувань безпеки). Саме сховище при цьому розділяється на дві частини:
Isolated Settings Storage;
Isolated File Storage.
Сховище Isolated Settings Storage призначено для зберігання установок програми. Зберігання налаштувань здійснюється в спеціальному словнику (ключ – значення) і дуже схоже на те, як працюють аналогічні механізми в настільній платформі.
Сховище Isolated File Storage призначене для зберігання різних даних у вигляді файлів. При цьому це сховище можна структурувати, використовуючи розбиття на папки. Фактично, це – деякий доступ до файлової системи ізольованого сховища.
Для організації механізму зберігання даних в Windows Phone SDK використовується наступний набір об'єктів:
System. IO. IsolatedStorage. IsolatedStorageSettings – надає доступ до словника (ключ – значення) налаштувань для поточного сховища (Isolated Settings Storage) ;
System. IO. IsolatedStorage. IsolatedStorageFile – дозволяє отримати доступ до сховища даних (Isolate File Storage) ;
System. IO. IsolatedStorage. IsolatedFileStream – дозволяє отримати доступ до вмісту файлу в сховищі (Isolate File Storage) ;
System. IO. IsolatedStorage. IsolatedStorageException – виняток, що виникає при помилках в роботі з сховищем.
Таким чином на сторінці з інформацією ми зберігаємо посилання, а при запуку додатку перевіряється і скачується інформація про номера. Код:
if (IsolatedStorageSettings. ApplicationSettings. Contains («like»))
{
if (IsolatedStorageSettings. ApplicationSettings[«like»] as string! = null)
{
GetLike () ;
}
}
Перевірка, чи заповнений файл з налаштуваннями. Якщо так, то викликаємо функцію GetLike:
public async void GetLike ()
{
var likehtmlPage = IsolatedStorageSettings. ApplicationSettings[«like»] as string; ;
string newhtmlPage = ««;
using (var client = new HttpClient ())
{
newhtmlPage = await client. GetStringAsync (likehtmlPage) ;
}
HtmlDocument newhtmlDocument = new HtmlDocument () ;
newhtmlDocument. LoadHtml (newhtmlPage) ;
nameTaxi. Text = newhtmlDocument. DocumentNode. SelectSingleNode («//h1[@itemprop='name']»). InnerText. Trim () ;
List<Phone> Taxi_Phone = new List<Phone> () ;
foreach (var div in newhtmlDocument. DocumentNode. SelectNodes («//p[@itemprop='telephone']»))
{
Phone newTaxi = new Phone () ;
newTaxi. phone = div. SelectSingleNode («. //span»). InnerText. Trim () ;
Taxi_Phone. Add (newTaxi) ;
}
like. ItemsSource = Taxi_Phone;
}
Наступним кроком відбувається вибір міста в якому проживаєш. Цей процес також реалізовано через Isolated Settings Storage. При першому запуску маємо незаповнений список і кнопну для переходу до налаштувань.
Рисунок 4. 9 – Пустий список з таксі
В налаштуваннях є ListPicker з списком міст України які є константами, також вони мають константні посилання.
Рисунок 4. 10 – Сторінка з налаштуваннями
При виборі міста і збереженні налаштувань на головній сторінці додатку відбувається перевірка на те чи заповнений файл з налаштуваннями:
if (IsolatedStorageSettings. ApplicationSettings. Contains («city»))
{
if (IsolatedStorageSettings. ApplicationSettings[«city»] as string! = null)
{
SetCity () ;
setcity. Visibility = Visibility. Collapsed;
CityTitle. Header = IsolatedStorageSettings. ApplicationSettings[«city»] as string; ;
}
else { setcity. Visibility = Visibility. Visible;
CityTitle. Header = «Такси в твоем городе»; }
}
Якщо файл не пустий викликається функція SetCity (), в якій аналогічно до попереднього методу відбувається заповнення.
І так ми маємо повністю заповнену головну сторінку яка в подальшому буде посилатися на інші.
Рисунок 4. 11 – Заповнена головна сторінка
Для навігації між сторінками використовується спеціальний клас NavigationService, за допомогою методів якого ми можемо програмно керувати навігацією:
GoBack Переходить до останнього запису журналу переходів назад або створює виняток, якщо в журналі переходів назад немає записів.
GoForward Переходить до останнього запису журналу переходів вперед або створює виняток, якщо в журналі переходів вперед немає записів.
Navigate Переходить до вмісту, заданому універсальним кодом ресурсу (URI).
Refresh Перезавантаження поточної сторінки.
StopLoading Зупиняє ще не оброблені асинхронні переходи.
Приклад коду:
NavigationService. Navigate (new Uri («/CityTaxi. xaml? href=« + (CityInObl.