Форум программистов, компьютерный форум CyberForum.ru

Как организовать логику приложения WebView - Windows Phone

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Windows Phone Открытие таблицы Excel и работа с ней http://www.cyberforum.ru/windows-phone-dev/thread1618798.html
подскажите можно ли с мобильной платформы открыть таблицу exel и считать с нее данные если да то можете рассказать
Windows Phone Создание и управление базой данных доброго времени суток, пишу приложение на winjs, подскажите как создать и управлять базой данных ответ нужен или как это сделать на js или же на c#, желательно конечно на js http://www.cyberforum.ru/windows-phone-dev/thread1618134.html
Windows Phone найти какое-нибудь API, по которому можно получить JSON-строку
Помогите найти какое-нибудь API, по которому можно получить JSON-строку с массивом каких-то объектов.
Windows Phone Курсовая: Проектирование алгоритма передачи интерактивного контента в режиме реального времени
Помогите составить план курсовой. Тема:Проектирование алгоритма передачи интерактивного контента в режиме реального времени в условиях низких скоростей интернет-соединения для Windows Phone
Windows Phone ScrollViewer: почему не работает полоса прокрутки? http://www.cyberforum.ru/windows-phone-dev/thread1612278.html
Подскажите,пожалуйста, почему не работает полоса прокрутки? <Grid> <ScrollViewer> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="*"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> ...
Windows Phone Где правильно разместить Privacy Policy (Appstore, Win10 desktop) Перед публикацией приложения в Appstore возникла специфическая ситуация: "на территории" аппликации надо бы разместить ссылку на сабж. Как я понял, желательно в секции Settings. Об этом писалось, например, вот здесь: http://geektimes.ru/post/152039/ Но у меня данной секции не предусмотрено, а ссылка есть в самом низу окна(приложения), точнее, целых две ссылки: одна на Facebook, другая на сабж.... подробнее

Показать сообщение отдельно
Максим2016
0 / 0 / 0
Регистрация: 16.12.2015
Сообщений: 5
22.12.2015, 20:31  [ТС]     Как организовать логику приложения WebView
Спасибо за отклик, друг. В попытках развить обсуждение, представлю класс MainPage, дабы прояснить свою некомпетентность в C#, и выявить что именно я делаю не так. Так как логика в основе у нас совпала!
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
   
  public sealed partial class MainPage : Page
    {
 
        static String loadUrl = "http://ya.ru"; [B]//!!!!! Вот здесь я незнаю как вызвать get-url-from-storage(); 
[/B]
        private static readonly Uri HomeUri = new Uri(loadUrl, UriKind.Absolute);   
        public MainPage()
        {
            this.InitializeComponent();
            this.NavigationCacheMode = NavigationCacheMode.Required;
        }
 
        /// <summary>
        /// Вызывается перед отображением этой страницы во фрейме.
        /// </summary>
        /// <param name="e">Данные события, описывающие, каким образом была достигнута эта страница.
        /// Этот параметр обычно используется для настройки страницы.</param>
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            WebViewControl.Navigate(HomeUri);
 
            HardwareButtons.BackPressed += this.MainPage_BackPressed;
        }
 
        /// <summary>
        /// Вызывается переходе с данной страницы.
        /// </summary>
        /// <param name="e">Данные о событиях, описывающие переход на эту страницу.</param>
        protected override void OnNavigatedFrom(NavigationEventArgs e)
        {
            HardwareButtons.BackPressed -= this.MainPage_BackPressed;
        }
 
        /// <summary>
        /// Переопределение нажатия кнопки "Назад" для навигации по обратному стеку веб-представления, а не приложения.
        /// </summary>
        private void MainPage_BackPressed(object sender, BackPressedEventArgs e)
        {
            if (WebViewControl.CanGoBack)
            {
                WebViewControl.GoBack();
                e.Handled = true;
            }
        }
 
        private void Browser_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
        {
            if (!args.IsSuccess)
            {
                Debug.WriteLine("Navigation to this page failed, check your internet connection.");               
            }
        }
 
        /// <summary>
        /// Переход вперед по журналу веб-представления.
        /// </summary>
        private void ForwardAppBarButton_Click(object sender, RoutedEventArgs e)
        {
            if (WebViewControl.CanGoForward)
            {
                WebViewControl.GoForward();
            }
        }
        /// <summary>
        /// Вызываем сохранение и сразу чтение (чтобы задействовать только одну кнопку) требуемую инфор-ию.
        /// </summary>
 
        private async void SaveButton_Click(object sender, RoutedEventArgs e)
        {
            await writeXMLAsync();
            await readXMLAsync();
            //Вызываем всплывающее сообщение с сохраненной информацией
            MessageDialog msgbox = new MessageDialog("s", "" + loadUrl);
            await msgbox.ShowAsync();       
        }
           // извлекаем адрес и пишем в хранилище 
        private async Task writeXMLAsync()
        {
            Url u = new Url();
            u.NameUrl = WebViewControl.Source.ToString();
            var serializer = new DataContractSerializer(typeof(Url));
            using (var stream = await ApplicationData.Current.LocalFolder.OpenStreamForWriteAsync(
                "data.xml", CreationCollisionOption.ReplaceExisting))
            {
                serializer.WriteObject(stream, u);
            }
        }
         //извлекаем из хранилища
        private async Task readXMLAsync()
        {
            var serializer = new DataContractSerializer(typeof(Url));
 
            // проверка наличия файла
            bool existed = await FileExists(ApplicationData.Current.LocalFolder, "data.xml");
            if (existed)
            {
                using (var stream = await ApplicationData.Current.LocalFolder.OpenStreamForReadAsync("data.xml"))
                {
                    Url u = (Url)serializer.ReadObject(stream);
                    loadUrl = u.NameUrl;
                }
            }       
        }
        // проверка наличия файла
        public async Task<bool> FileExists(StorageFolder folder, string fileName)
        {
            return (await folder.GetFilesAsync()).Any(x => x.Name == fileName);
        }
   // нужен для реализации такого способа сохранения информации
        public class  Url
        {            
            public string NameUrl { get; set; }     
        }
   }
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru