Dokumentacja w MSDN dla aplikacji WinRT na Windows i Windows Phone także uległa konwergencji. Mamy teraz współdzieloną gałąź Windows Runtime app development, a każda strona, zagadnienie czy uwaga opatrzone są znaczkiem tabletu i/lub telefonu. Dla osób chcących skorzystać z Silverlight 8.x jest osobna gałąź Windows Phone Silverlight development. Poniżej wyrywkowo kilka dodatkowych informacji o WP 8.1, które rzuciły mi się przed oczy. Silverlight 8.1 posiada cztery nowe funkcjonalności dla aplikacji WP 8.1, które nie są dostępne dla stosu WinRT. Oczywiście dokumentacja jest bardzo obszerna i jak zajdzie potrzeba, to warto z niej skorzystać.
Aplikacje Windows Runtime
WinJS na WP
brak pewnych kontrolek, m.in DatePicker, TimePicker, Hub (zamiast niego zaleca się używać Pivot), SearchBox, Flyout i Menu (używać Popup), NavBar (używać AppBar), ToolTip (przekierować do następnej strony), brak wsparcia dla drag & drop w ListView
C#/VB/C++ na WP
http://msdn.microsoft.com/en-us/library/windowsphone/develop/dn631755.aspx - helper ContinuationManager + interfejsy dla stron
Funkcjonalności:
- WP nie wspiera długotrwających notyfikacji toast
- można wysłać dowolny szablon z notyfikacją toast, ale i tak zawsze wygenerowany zostanie jeden widok
- DeviceUseTrigger - w WP:
- nie ma obsługi urządzeń USB, MTP, sieciowych (przewodowych i Wi-Fi), IDeviceIOControl
- nie jest wymagana zgoda użytkownika
- limit rejestracji tasków tego typu do 1 (urządzenia z 512 MB RAM) lub 2 (urządzenia z więcej niż 512 MB), nieco inne zasady podczas wykonywania
- …
Silverlight 8.1
Kilka dodatkowych uwag:
- nie wspiera WalletAgent z WP8 (do NFC trzeba użyć nowego NFC API)
- lokalizowane kafelki sposobem z WP8 nie wyświetlają napisów jeśli przejdziemy na WNS
- nie można korzystać z zarządzanych komponentów WinRT (i takich tasków w tle)
- deklaracja DefaultTask w WMAppManifest.xml jest obowiązkowa (w przeciwieństwie do WP 8)
- rozmiary AppBar na różnych urządzeniach (ekrany, DPI) w logicznych pikselach Silverlight nie są obecnie jednakowe
- Silverlight/XNA zablokowany (w WP8 nieoficjalnie można było skorzystać)
- aplikacje w foreground działają teraz w modelu STA (w WP8 MTA), zadania w tle dalej w MTA
- jak padnie agent VOIP, to padnie także aplikacja foreground (w WP 8.1 aplikacje VOIP są zarządzane w ramach pakietu, a nie osobnych procesów)
- trzeba wspierać wszystkie rozdzielczości
- różnice w zachowaniu Panoramy i http
- udoskonalony szablon dla projektu HTML5 z Web Browser
- nie są obsługiwane pełne ścieżki w uri przy XDocument.Load
- ms-app w parametrze konstruktura Uri
- inaczej niż w aplikacjach WinRT implementuje się aktywację providera spotkań
Nowe funkcjonalności dostępne tylko w Silverlight 8.1:
Bindowanie kontaktów
You can use the contact bindings feature for Windows Phone Silverlight 8.1 apps to associate contacts from your app’s cloud-based contact store with local contacts on the device. When your app creates a contact binding, a tile for your app is displayed on the Connect pivot for the local contact in the People Hub. You can customize this tile to display images from your web service that are associated with the person. You can provide up to three images and the system will cycle through them. When the user taps your app’s Connect tile, your app is launched and is provided with the ID for the contact binding so you can show the user your app’s content for that person.
http://msdn.microsoft.com/en-us/library/windowsphone/develop/dn642083(v=vs.105).aspx
Rozszerzenia mediów online
If you’re creating an app that uses a web service to host images or videos on behalf of your user, in Windows Phone 8.1 you can integrate your app into the built-in Photos Hub on the phone. Your app will have a tile on the Albums pivot of the Photos Hub that the user can use to quickly explore the online media hosted by your service.
http://msdn.microsoft.com/en-us/library/windowsphone/develop/dn642079(v=vs.105).aspx
Integracja z kartą Me
On the Me card, a user can see their news feed and publish updates or location check-ins on social networks in one location on the phone. When your app is integrated with the Me card, the app appears in a list of apps that a user sees when they tap post an update or check in on the Me card. When the user taps your app name, your app launches and displays a UI in which the user can perform the requested task.
http://msdn.microsoft.com/en-us/library/windowsphone/develop/dn744304(v=vs.105).aspx
Zmiana rozmowy z komórkowej na VOIP
http://msdn.microsoft.com/en-us/library/windowsphone/develop/dn643752(v=vs.105).aspx
One additional step you must take to implement contact bindings for a VoIP call upgrade is specify the value CallUpgradeIdentifier as the value to the AppBindingAttributes property of the bindings you create. After a contact has been bound with your app this way, the contact is then recognized by the system as video-capable.
Zmiany w CallInProgressAgent i w aplikacji
Dodatkowe informacje o różnicach w stosunku do aplikacji WinRT:
Share target: http://msdn.microsoft.com/en-us/library/windowsphone/develop/dn655125(v=vs.105).aspx (uwaga! aplikacja taka nie powinna wywoływać ShareStatusTask, ShareLinkTask i ShareMediaTask, gdyż sama może znaleźć się na liście, co nie jest wspierane)
Appointment provider activation: http://msdn.microsoft.com/en-us/library/windowsphone/develop/dn655123(v=vs.105).aspx