Client App A App with App Service Background
Client App A App with App Service Background Task Client App B
Bar Code decoding App Service Image bytes in Value. Set or File. Token Decoded data
Client App A App Service Maintains Inventory cache Interact with cloud services Client App B App Service Proximity Reading Services
Think of App Services as ‘Web services on device’
App. Service. Connection connection = new App. Service. Connection(); connection. App. Service. Name = "microsoft. DX-appservicesdemo"; connection. Package. Family. Name = "24919 Arunjeet. Singh. Instapaper. It"; App. Service. Connection. Status connection. Status = await connection. Open. Async(); if (connection. Status == App. Service. Connection. Status. Success) { //Send data to the service var message = new Value. Set(); message. Add("Command", "Calc. Sum"); message. Add("Value 1", Int 32. Parse(Value 1. Text)); message. Add("Value 2", Int 32. Parse(Value 2. Text)); //Send message and wait for response App. Service. Response response = await connection. Send. Message. Async(message); if (response. Status == App. Service. Response. Status. Success) { int sum = (int)response. Message["Result"]; new Message. Dialog("Result=" + sum). Show. Async(); } }
namespace App. Services. Demo. Task { public sealed class App. Service. Task : IBackground. Task { private static Background. Task. Deferral _service. Deferral; public void Run(IBackground. Task. Instance task. Instance) { var app. Service = task. Instance. Trigger. Details as App. Service. Trigger. Details; if (app. Service. Name == "microsoft. DX-appservicesdemo") { // Hook up the Request. Received event handler app. Service. App. Service. Connection. Request. Received += Request. Received; } }. . .
private async void Request. Received(App. Service. Connection sender, App. Service. Request. Received. Event. Args args) { var message = args. Request. Message; // This service uses a Command keyed entry for the client to invoke services from the App Service string command = message["Command"] as string; switch (command) { case "Do. It": { var message. Deferral = args. Get. Deferral(); int value 1 = (int)message["Value 1"]; . . . Do some processing //Set a result to return to the caller var return. Message = new Value. Set(); return. Message. Add("Result", result); var response. Status = await args. Request. Send. Response. Async(return. Message); message. Deferral. Complete(); break; }. . . } }
<? xml version="1. 0" encoding="utf-8"? > <Package xmlns="http: //schemas. microsoft. com/appx/manifest/foundation/windows 10". . . > <Applications> <Application Id="App“. . . > <Extensions> <uap: Extension Category="windows. app. Service“ Entry. Point="App. Services. Demo. Task. App. Service. Task"> <uap: App. Service Name="microsoft. DX-appservicesdemo" /> </uap: Extension> </Extensions> </Applications> <Capabilities> <Capability Name="internet. Client" /> </Capabilities> </Package>
App. Service. Connection. Status connection. Status = await connection. Open. Async(); if (connection. Status == App. Service. Connection. Status. Success) { connection. Request. Received += On. Request. Received; }
Package. Current. Id. Family. Name
App services provides another way for applications to communicate with each other
It’s not just about XAML Windows App clients! https: //aruntalkstech. wordpress. com/2015/07/20/calling-an-app-service-from-a-wpfwinforms-win 32 -app/
- Slides: 27