КулЛиб - Классная библиотека! Скачать книги бесплатно
Всего книг - 719134 томов
Объем библиотеки - 1437 Гб.
Всего авторов - 276109
Пользователей - 125332

Новое на форуме

Новое в блогах

Впечатления

medicus про Демина: Не выпускайте чудовищ из шкафа (Детективная фантастика)

Очень. Рублёные. Фразы. По несколько слов. Каждая. Слог от этого выглядит специфическим. Тяжко это читать. Трудно продираться. Устал. На 12% бросил.

Рейтинг: +1 ( 1 за, 0 против).
kiyanyn про Деревянко: Что не так со структурой атомов? (Физика)

Первый признак псевдонаучного бреда на физмат темы - отсутствие формул (или наличие тривиальных, на уровне школьной арифметики) - имеется :)

Отсутствие ссылок на чужие работы - тоже.

Да эти все формальные критерии и ни к чему, и так видно, что автор в физике остановился на уровне учебника 6-7 класса. Даже на советскую "Детскую энциклопедию" не тянет.

Чего их всех так тянет именно в физику? писали б что-то юридически-экономическое

  подробнее ...

Рейтинг: +3 ( 3 за, 0 против).
Влад и мир про Сомов: Пустой (СИ) (Боевая фантастика)

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

  подробнее ...

Рейтинг: +2 ( 2 за, 0 против).
Влад и мир про Nezloi: Первый чемпион Земли 2 (Боевая фантастика)

Мне понравились обе книги.

Рейтинг: +2 ( 2 за, 0 против).
Влад и мир про ezh: Всадник Системы (Попаданцы)

Прочитал обе книги с удовольствием. Спасибо автору!

Рейтинг: +1 ( 1 за, 0 против).

Разработка мобильных приложений на C# для iOS и Android [Вячеслав Черников] (pdf) читать постранично, страница - 39

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

Uri("https://login.live.com/oauth20_desktop.srf"),
clientSecret: null,
accessTokenUrl: new Uri("https://login.live.com/oauth20_token.srf")
)
{
AllowCancel = true
};

Листинг 11.24  Теперь повесим обработчик завершения авторизации
auth.Completed += AuthOnCompleted;

OAuth  185

Все – можно показать модальное окно со встроенным веб-браузером
для авторизации, получаемое через метод auth.GetUI().
Листинг 11.25  Примерно так это можно сделать на iOS
UIApplication.SharedApplication.KeyWindow.RootViewController.
PresentViewController(auth.GetUI(), true, null);

Листинг 11.26  Каким может получиться код на Android
при использовании Xamarin.Forms
Forms.Context.StartActivity(auth.GetUI(Forms.Context));

Листинг 11.27  После успешной авторизации вызовется наш метод
AuthOnCompleted(), и для iOS будет необходимо скрыть
модальное окно с браузером
(на Android само скроется)
UIApplication.SharedApplication.KeyWindow.RootViewController.
DismissViewController(true, null);

Листинг 11.28  Теперь можно получать нужные данные (access_token
и время его жизни в секундах – expires_in)
var token = authCompletedArgs.Account.Properties["access_token"];
var expireIn = Convert.ToInt32(authCompletedArgs.Account.Properties["expires_
in"]);
var expireAt = DateTimeOffset.Now.AddSeconds(expireIn);

И нам остался последний шаг – получить расширенную информацию из профиля пользователя, включая email и ссылку на аватарку.
Для этого в Xamarin.Auth есть специальный класс OAuth2Request, с помощью которого удобно делать подобные запросы.
Листинг 11.29  Отправка OAuth2Request
var request = new OAuth2Request("GET", new Uri("https://apis.live.net/v5.0/me"),
null, account);
var response = await request.GetResponseAsync();

Теперь нам приходит JSON с данными пользователя, и мы можем
их сохранить и отобразить в приложении.
Листинг 11.30  Использование полученных данных из Live API
if (response.StatusCode == HttpStatusCode.OK)
{
var userJson = response.GetResponseText();

186  Авторизация с помощью Facebook, ВКонтакте и OAuth
var jobject = JObject.Parse(userJson);
result.LoginState = LoginState.Success;
result.Email = jobject["emails"]?["preferred"].ToString();
result.FirstName = jobject["first_name"]?.ToString();
result.LastName = jobject["last_name"]?.ToString();
result.ImageUrl = jobject["picture"]?["data"]?["url"]?.ToString();
var userId = jobject["id"]?.ToString();
result.UserId = userId;
result.ImageUrl = $"https://apis.live.net/v5.0/{userId}/picture";
}

Как видим, ничего сложного нет. Вопрос в том, чтобы правильно
прописать URL для процесса авторизации. Ну и помнить, что поле
expires_in содержит время в секундах (это вызывает частые вопросы).

Рис. 11.9  Использование авторизации Microsoft в приложении

В реальных проектах также рекомендуем назначить обработчик
ошибок на событие auth.Error, чтобы ни одна проблема не осталась
без решения.
Сегодня мы завершили рассмотрение всех популярных способов
авторизации пользователей и получения базовой информации о них
через внешние сервисы. Описанные механизмы подходят как для
Xamarin.Forms, так и для классического Xamarin iOS/Android. Полные
исходные коды проекта со всеми примерами можно найти в репозитории https://github.com/binwell-university/XamarinBookSamples.

Заключение
Поздравляю! Вы добрались до конца этой непростой книги, в которой
я постарался описать весь процесс разработки мобильных приложений, включая выбор инструментов, проектирование, создание «скелета» проекта, автоматизацию и решение ряда повседневных задач
программиста. Объединенные в одно целое, данные улучшения делают процесс разработки более простым и понятным.
Описанные в книге подходы совместимы с базовыми принципами Agile/DevOps и могут быть легко адаптированы под различные
инструменты разработки приложений с пользовательским интер­
фейсом.
Выражаю благорадность моим коллегам по компании Binwell, отдельно Кириллу Ашихмину и Артему Тищенко за помощь с примерами.
Буду рад получить ваши отзывы и комментарии по улучшению
книги на editor@binwell.com!
Ваш
Черников Вячеслав

Книги издательства «ДМК Пресс» можно заказать
в торгово-издательском холдинге «Планета Альянс» наложенным платежом,
выслав открытку или письмо по почтовому адресу:
115487, г. Москва, 2-й Нагатинский пр-д, д. 6А.
При оформлении заказа следует указать адрес (полностью),
по которому должны быть высланы книги;
фамилию, имя и отчество получателя.
Желательно также указать свой телефон и электронный адрес.
Эти книги вы можете заказать и в интернет-магазине: www.a-planeta.ru.
Оптовые закупки: тел. (499) 782-38-89.
Электронный адрес: books@alians-kniga.ru.

Вячеслав Черников
Разработка мобильных приложений на C#
для iOS и Android
Главный редактор

Мовчан Д. А.

dmkpress@gmail.com

Корректор
Верстка
Дизайн обложки

Чистякова Л. А.
Чаннова А. А.
Мовчан А. Г.

Формат 70×100 1/16.
Гарнитура «PT Serif». Печать офсетная.
Усл. печ. л. 15,28. Тираж 200 экз.
Веб-сайт издательства: www.dmkpress.com

Powered by TCPDF (www.tcpdf.org)