понедельник, 28 ноября 2011 г.

Установка стартовой страницы Windows Phone из кода

Иногда требуется установить стартовую страницу Windows Phone 7 приложения динамически или с помощью кода. Например после некоторых действий наше приложение изменилось, и при следующем запуске должна запускаться другая стартовая страница. Это можно сделать следующим образом, в файле App.xaml.cs в метод   Application_Launching добавить две строки:

private void Application_Launching(object sender, LaunchingEventArgs e)
{
      Uri nUri = new Uri("/Page.xaml", UriKind.Relative);
      ((App)Application.Current).RootFrame.Navigate(nUri);
}

Теперь наше Windows Phone 7 приложение будет запускаться со стартовой страницы Page.xaml.

Cookie для WebClient из Windows Phone 7

Очень часто возникает вопрос, как программно зайти на какой-либо веб-страницу и вернуть ее в виде тектстовой строки в WP7. Идеальным решением для этого подойдет использование WebClient, который вернет данные в виде простой текстовой строки, которую можно будет легко проанализировать, например с помощью LINQ.

Один из вопросов, который возникает при использовании WebClient - это отсутствие поддержки cookie. Поэтому придется управлять состоянием сеанса вручную, если вы хотите использовать что-то вроде WebClient. Нужно будет убедиться, что cookie из HttpRequest ловятся, а затем сохраняются где-нибудь. Потом их можно передать его в WebClient запрос. Вроде бы все просто.

 Чтобы решить эту проблему, сделаем свои собственные cookie для WebClient:

public class MyCookieWebClient: WebClient
{
      [System.Security.SecuritySafeCritical]
      public MyCookieWebClient()
            : base()
     {
     }
     private CookieContainer cookieContainer = new CookieContainer();
     protected override WebRequest GetWebRequest(Uri myAddress)
     {
           WebRequest request = base.GetWebRequest(myAddress);
           if (request is HttpWebRequest)
          {
               (request as HttpWebRequest).CookieContainer =   cookieContainer  ;
          }
          return request;
      }
}


Этот код даст позволит нашему новому WebClient из WP7 Silverlight хранить куки. Попробуем это сделать:


MyCookieWebClient  myCookieClient = new  MyCookieWebClient();
myCookieClient.DownloadStringCompleted += new  DownloadStringCompletedEventHandler (  myCookieClient_DownloadStringCompleted);

myCookieClient.DownloadStringAsync(new  Uri("http://myserver.com/login?username&pass"));


Все просто!

среда, 23 ноября 2011 г.

Samsung Omnia W в появился Евросети

С сегодняшнего дня в московском магазине Евросеть появился в розничной продаже Samsung Omnia W. Еще несколько дней назад Omnia W был доступен только для предзаказа, а теперь его можно купить как в обычном магазине, так и заказать через интернет. Напомним, что в США у этого телефона кодовое имя Samsung Focus Flash и стоит он там 49.99$ с 2-летним контрактом, что составляет примерно 12.700 руб. В Евросети же он продается по цене 14.990 руб.
Samsung GT-i8350 Omnia W это первый смартфон от Samsung под управлением Windows Phone Mango 7.5, который официально появился в России. Телефон имеет вид моноблока с сенсорным дисплеем, выполненным по технологии Super AMOLED, с разрешением   480x800 точек и имеет размер 3.7 дюйма, также в телефоне есть 5 Мпикс. камера с автофокусом и вспышкой, медиаплеер, 3.5 мм разъём для подключения гарнитуры, FM-радио, Bluetooth, Wi-Fi и GPS модули. Но одной из главных его особенностей, это то что он оснащен процессором с частотой 1400 МГц.