4. UAP
Windows Core Windows Core Windows Core Windows Core
UAP UAP UAP
Desktop Mobile Xbox More…
UAP = Universal App Platform
4
5. Windows Phone 7.5/7.8
Windows Phone 8.0
Windows Phone 8.1*
Портировать UI Silverlight на Windows
XAML
Переписать код под UAP APIs*
Адаптировать UX под разрешения
Windows 10
Windows Phone Silverlight Apps
5
6. Немного изменить код под
UAP
Минимально
адаптировать UX
Windows 10
Universal app
6
7. Необходимо поменять файл проекта и манифест
package.appxmanifest
Но средств в Visual Studio пока еще нет
…но уже есть написанный Powershell скрипт,
который может это сделать
Вот он - http://aka.ms/W10P-ProjectUpgradeUtility
Миграция проекта
7
11. var ns = "Windows.Phone.UI.Input.HardwareButtons";
if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent(ns))
{
Windows.Phone.UI.Input.HardwareButtons
.BackPressed += Back_BackPressed;
}
Что получается в итоге?
11
17. Windows XAML layout controls
Grid
Stack
Panel
Canvas
Scroll
Viewer
Border View Box Wrap Grid Relative
Panel
Relative Panel это XAML контрол. Контент
располагается на основе отношения между
детьми.
RelativePanel
17
26. Отправить токен файла
Запустить *определенное* прил.
App Services
Дождаться результатов запуска
Взаимодействие между приложениями
26
27. Запуск определенного приложения
var options = new LauncherOptions();
options.TargetApplicationPackageFamilyName = "24919.InstapaperIt";
var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com");
await Launcher.LaunchUriAsync(launchUri, options);
var queryUri = new Uri("instapaper:");
await Launcher.QueryUriSupportAsync(queryUri, LaunchUriType.LaunchUri);
27
28. Хранилище для «шаринга»
var options = new LauncherOptions();
options.TargetApplicationPackageFamilyName = "24919.InstapaperIt";
var token = SharedStorageAccessManager.AddFile (gpxFile);
ValueSet inputData = new ValueSet();
inputData.Add("Token", token);
var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com");
await Launcher.LaunchUriAsync(launchUri, options, inputData);
28
29. // первое приложение
var options = new LauncherOptions();
options.TargetApplicationPackageFamilyName = "24919.Instap";
var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com");
await Launcher.LaunchUriForResultsAsync(launchUri, options, data);
// второе приложение
var resultData = new ValueSet();
resultData.Add("Result", value);
operation.ProtocolForResultsOperation.ReportCompleted(resultData);
Получение ответа
29
31. Доступ к папке “fonts”
Windows.Storage.ApplicationData.Current
.GetPublisherCacheFolder("fonts");
Очистить общую папку
Windows.Storage.ApplicationData.Current
.ClearPublisherCacheFolderAsync();
Общая папка для одного автора
31
33. Action center
- Максимум 20 уведомлений на приложение;
- Можно удалять одно или несколько уведомлений;
- Ставить «срок годности» уведомлениям;
- Заменять уведомления другими;
- Задавать уведомления св-ва Group или Tag;
- Отлавливать изменения в action center при
помощи специально триггера. Реализуется через
BackgroundTask.
…..
33
34. • Карты (новый общий контрол)
• АПИ батареи
• CalendarPicker
• LaunchFolder
• InkCanvas
• App Services
• Распознавание речи
Еще новенького
34