Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Important
Cihaz meta verileri kullanım dışıdır ve windows'un gelecek bir sürümünde kaldırılacaktır. Bu işlevin değiştirilmesi hakkında bilgi için bkz . Sürücü Paketi Kapsayıcı Meta Verileri.
UWP cihaz uygulamaları, v4 yazdırma sürücüsünden gönderilen çift yönlü iletişim (Bidi) olaylarına yanıt verebilir. Bu makalede yazdırma bildirimleri tanıtılır ve Yazdırma ayarları ve yazdırma bildirimleri örneğinin C# sürümünün yazdırma bildirimine yanıt vermek için arka plan görevini nasıl kullandığı gösterilir. Arka plan görevi, bildirim ayrıntılarını yerel uygulama veri deposuna kaydetmeyi, bildirim göndermeyi ve kutucuğu ve rozeti güncelleştirmeyi gösterir. Genel olarak UWP cihaz uygulamaları hakkında daha fazla bilgi edinmek için bkz. UWP cihaz uygulamalarıyla tanışın.
Yazdırma ayarları ve yazdırma bildirimleri örneğinin C# sürümü, BackgroundTask projesinde uygulamanın arka plan bölümünü (arka plan görevi) gösterir. Arka plan görevinin kodu PrintBackgroundTask.cs dosyasındadır. Başlangıç ekranından başlatılabilir tam ekran uygulama olan ön plan uygulaması, DeviceAppForPrinters projesinde yer alır. InkLevel.xaml.cs dosyası, ön plan uygulamasından bildirim ayrıntılarına erişmenin bir yolunu gösterir. Yazdırma bildirimleriyle çalışmak için örnek, PrinterExtensionLibrary projesindeki yazıcı uzantısı kitaplığını kullanır. Yazıcı uzantısı kitaplığı, v4 yazdırma sürücüsünün yazıcı uzantısı arabirimlerine erişmek için kullanışlı bir yol sağlar. Daha fazla bilgi için bkz. Yazıcı uzantısı kitaplığına genel bakış.
Bu makalede gösterilen kod örnekleri , Yazdırma ayarları ve yazdırma bildirimleri örneğinin C# sürümünü temel alır. Bu örnek JavaScript ve C++ ile de kullanılabilir. C++ COM'a doğrudan erişebildiğinden, örneğin C++ sürümü kod kitaplığı projelerini içermez. Kodun en son sürümlerini görmek için örnekleri indirin.
Bildirimleri yazdırma
Yazdırma bildirimleri, UWP cihaz uygulamanızın yazdırma sırasında kağıt sıkışması, yazıcı kapısını açma, düşük mürekkep düzeyleri veya yazıcı yetersiz hataları gibi önemli yazıcı olaylarını kullanıcıya bildirmesini sağlar. Yazıcı bir bildirim tetiklediğinde, sistem olay aracısı uygulamanızın arka plan görevini çalıştırır. Buradan, arka plan görevi bildirim ayrıntılarını kaydedebilir, bildirim gönderebilir, kutucuğu güncelleştirebilir, rozeti güncelleştirebilir veya hiçbir şey yapmaz. Uygulamanız, bildirim ayrıntılarını kaydederek kullanıcıların yazıcı sorunlarını anlamasına ve düzeltmesine yardımcı olan bir deneyim sağlayabilir.
Yazıcı üreticileri, UWP cihaz uygulamalarıyla yazdırma bildirimlerini kullanmak için v4 yazdırma sürücülerinde Bidi ve DriverEvent XML dosyasını uygulamalıdır. Daha fazla bilgi için bkz. Çift Yönlü İletişimler.
Bir DriverEvent gerçekleştiğinde ve UWP cihaz uygulamasının arka plan görevi başlatıldığında, uygulamanın nasıl ilerleyebileceğine ilişkin çeşitli seçenekleri vardır. Görevin başlatılmasına yol açan akış hakkında daha fazla bilgi için bkz. Özelleştirilmiş Kullanıcı Arabirimi için Sürücü Desteği.
Arka plan görevi aşağıdakileri seçebilir:
- Hiçbir şey yapma
- Bildirim ayrıntılarını yerel uygulama veri deposuna kaydetme
- UWP uygulaması kutucuk bildirimini güncelleştirme
- UWP uygulama bildirim rozeti güncellemesi
- UWP uygulaması bildirim gönderme
Kutucuk bildirimi veya tost bildirimi, kullanıcının ana uygulamanızı rahatça başlatmasını sağlayabilir. Ön plan uygulaması başlatıldığında, bir kutucuk veya toast bildirimi tarafından başlatılıp başlatılmadığını denetlemek için App.xaml.cs içindeki OnLaunched yöntemini kullanabilir. Varsa, ön plan uygulaması yerel uygulama veri deposundaki tüm yazdırma bildirimi ayrıntılarına erişebilir.
Prerequisites
Başlamadan önce:
Yazıcınızın bir v4 yazdırma sürücüsü kullanılarak yüklendiğinden emin olun. Daha fazla bilgi için bkz . v4 yazdırma sürücüleri geliştirme.
Geliştirme bilgisayarınızı ayarlayın. Araçları indirme ve geliştirici hesabı oluşturma hakkında bilgi için bkz. Başlarken .
Uygulamanızı mağazayla ilişkilendirin. Daha fazla bilgi için bkz. UWP cihaz uygulaması oluşturma.
Yazıcınızı uygulamanızla ilişkilendiren cihaz meta verileri oluşturun. Daha fazla bilgi için bkz. Cihaz meta verileri oluşturma.
Uygulamanızın ana sayfası için kullanıcı arabirimini oluşturun. Tüm UWP cihaz uygulamaları, tam ekran görüntülendiği Başlangıç ekranından başlatılabilir. Ürün veya hizmetlerinizi, cihazlarınızın belirli markalarına ve özelliklerine uygun şekilde vurgulamak için Başlangıç deneyimini kullanın. Kullanabileceği kullanıcı arabirimi denetimlerinin türüyle ilgili özel bir kısıtlama yoktur. Tam ekran deneyiminin tasarımını kullanmaya başlamak için Microsoft Store tasarım ilkelerine bakın.
Uygulamanızı C# veya JavaScript ile yazıyorsanız PrinterExtensionLibrary ve DeviceAppForPrintersLibrary projelerini UWP cihaz uygulaması çözümünüze ekleyin. Bu projelerin her birini yazdırma ayarları ve yazdırma bildirimleri örneğinde bulabilirsiniz.
C++ COM'a doğrudan erişebildiğinden, C++ uygulamaları COM tabanlı yazıcı cihaz bağlamıyla çalışmak için ayrı bir kitaplık gerektirmez.
1. Adım: Arka plan görevini kaydetme
Windows'un uygulamanın yazdırma bildirimlerini işleyebildiğini fark edebilmesi için, yazdırma bildirimleri için bir arka plan görevleri uzantısı kaydetmesi gerekir. Bu uzantı, bir Extension öğesinin içinde, Category özniteliği windows.backgroundTasks olarak ayarlanmış ve EntryPoint özniteliği BackgroundTask.PrintBackgroundTask olarak ayarlanmış şekilde bildirilir. Uzantı, görev türlerini desteklediğini Task belirten bir systemEvent öğe de içerir.
Microsoft Visual Studio'da Bildirim Tasarımcısı'nın Bildirimler sekmesine yazdırma arka planı görev uzantısını ekleyebilirsiniz. Xml (Metin) Düzenleyicisi'ni kullanarak uygulama paketi bildirim XML'sini el ile de düzenleyebilirsiniz. Düzenleme seçenekleri için Çözüm GezginiPackage.appxmanifest dosyasına sağ tıklayın.
Bu örnek, uygulama paketi bildirim dosyası Package.appxmanifest içinde göründüğü şekliyle, Extension öğesindeki arka plan görevi uzantısını gösterir.
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest">
<Identity Name="Microsoft.SDKSamples.DeviceAppForPrinters.CS" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" Version="1.0.0.0" />
<Properties>
<DisplayName>Device App For Printers C# sample</DisplayName>
<PublisherDisplayName>Microsoft Corporation</PublisherDisplayName>
<Logo>Assets\storeLogo-sdk.png</Logo>
</Properties>
<Prerequisites>
<OSMinVersion>6.3.0</OSMinVersion>
<OSMaxVersionTested>6.3.0</OSMaxVersionTested>
</Prerequisites>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="DeviceAppForPrinters" Executable="$targetnametoken$.exe" EntryPoint="DeviceAppForPrinters.App">
<VisualElements DisplayName="Device App For Printers C# sample" Logo="Assets\squareTile-sdk.png"
SmallLogo="Assets\smallTile-sdk.png" Description="DeviceAppForPrinters C# sample"
ForegroundText="light" BackgroundColor="#00b2f0" ToastCapable="true">
<DefaultTile ShowName="allLogos" ShortName="App4PrinterCS" WideLogo="Assets\tile-sdk.png" />
<SplashScreen Image="Assets\splash-sdk.png" BackgroundColor="#00b2f0" />
</VisualElements>
<Extensions>
<Extension Category="windows.backgroundTasks" EntryPoint="BackgroundTask.PrintBackgroundTask">
<BackgroundTasks>
<Task Type="systemEvent" />
</BackgroundTasks>
</Extension>
<Extension Category="windows.printTaskSettings" Executable="$targetnametoken$.exe" EntryPoint="DeviceAppForPrinters.App" />
</Extensions>
</Application>
</Applications>
</Package>
2. Adım: Cihaz meta verilerini yapılandırma
Uygulamanızı cihazınızla ilişkilendirmek için Cihaz Meta Veri Yazma Sihirbazı'nı kullanırken UWP cihaz uygulaması bilgilerini belirtin sayfasındaki Bildirim işleyicileri kutusunu tamamladığınızdan emin olun. Bu, yazdırma bildirimi sırasında uygulamanızın arka plan görevinin çağrılmasını sağlamaya yardımcı olur.
Cihaz meta verilerinizi düzenleme hakkında adım adım yönergeler için Test bölümüne bakın.
3. Adım: Kullanıcı arabirimini oluşturma
Uygulamanızı oluşturmadan önce kullanıcı deneyimini tasarlamak için tasarımcılarınız ve pazarlama ekibinizle birlikte çalışmanız gerekir. Kullanıcı deneyimi, şirketinizin marka özelliklerini yansıtmalı ve kullanıcılarınızla bağlantı kurmanıza yardımcı olmalıdır.
Tasarım yönergeleri
Kutucuk ve rozet deneyiminizi tasarlamadan önce Microsoft Store uygulama yönergelerini gözden geçirmeniz önemlidir. Yönergeler, uygulamanızın diğer UWP uygulamalarıyla tutarlı sezgisel bir deneyim sağlamasına yardımcı olur.
Uygulamanızın ana sayfasında, Windows 8.1'in tek bir monitörde çeşitli boyutlarda birden çok uygulama görüntüleyebileceğini unutmayın. Uygulamanızın ekran boyutları, pencere boyutları ve yönlendirmeler arasında uygun bir şekilde nasıl yeniden düzenleyebileceği hakkında daha fazla bilgi edinmek için aşağıdaki rehberlere bakın.
- Pencere boyutları ve ekranlara ölçeklendirme yönergeleri
- Pencereleri uzun ve dar düzenlere yeniden boyutlandırma yönergeleri
En iyi uygulamalar
Bildirimlere eylem sözcükleri eklemeyin. Bildirim iletisinde, kullanıcılara bildirim göndermelerini, basmalarını veya seçmelerini söyleyen bir metin kullanmayın. Kullanıcılar, daha fazla bilgi bulmak için bir tosta basabileceklerini zaten anlamaktadırlar. Örneğin, "Yazıcınızda mürekkep az" yerine "Yazıcınızın mürekkep yetersiz" yazmanız yeter. Sorun gidermek için basın".
Etkileşimleri basit tutun. Bildirim deneyiminde gösterilen her şey bildirimle ilgili olmalıdır. Örneğin, kağıt sıkışması ile ilgili bir bildirim sayfasında yalnızca bu sorunu çözmeyle ilgili bağlantılar ve bilgiler bulunmalıdır. Mürekkep satın alma veya diğer destek bilgileri gibi ilgisiz deneyimlere bağlantılar içermemelidir.
Multimedyayı kullanın. Kullanıcıların cihazlarıyla ilgili bir sorunu hızla çözmesine yardımcı olmak için gerçek fotoğrafları, videoları veya cihazın çizimlerini kullanın.
Kullanıcıları uygulamanızın bağlamında tutun. Bir sorun hakkında bilgi sağlarken çevrimiçi veya diğer destek malzemelerine bağlantı verme. Kullanıcıyı uygulama bağlamında tutun.
4. Adım: Arka plan görevi oluşturma
Uygulamanız yazdırma bildirimleri için bir arka plan görevi kaydederse, arka plan görevi etkinleştirmesi için bir işleyici sağlaması gerekir.
Yazdırma ayarları ve yazdırma bildirimleri örneğindePrintBackgroundTask, sınıf yazdırma bildirimlerini işler.
Yazıcınızın durumu hemen kullanıcı müdahalesi gerektirmiyorsa, bildirim göstermek yerine kutucuğu güncelleştirin. Örneğin, düşük mürekkep durumu için panel güncellemesi yeterlidir. Ancak yazıcıda mürekkep yoksa uygulama bir toast bildirimi gösterebilir.
Bildirim ayrıntılarını kaydetme
Arka plan görevi ön plan uygulamasını doğrudan başlatamaz, yalnızca kullanıcı başlatabilir: bir kutucuktan, geçici bildirimden veya Başlat menüsünden. Bu nedenle, ön plan uygulamasının yazdırma bildirimi ayrıntılarına erişebildiğinden emin olmak için arka plan görevi bunları yerel depolama alanına kaydeder. Yerel depolamayı kullanma hakkında daha fazla bilgi için bkz . Hızlı Başlangıç: yerel uygulama verileri.
Bir yazdırma bildirimi tetiklendiğinde, Windows Run yöntemini çağırarak arka plan görevini çalıştırır. Bildirim verileri, türü Windows.Devices.Printers.Extensions.PrintNotificationEventDetails olarak dönüştürülmesi gereken bir yöntem parametresi aracılığıyla arka plan görevine geçirilir. Bu PrinterName nesnenin ve EventData özellikleri sırasıyla yazıcı adını ve Bidi iletisini taşır.
Bu örnek, Run dosyasında, bildirim, kutucuk ve rozet yöntemleri çağrılmadan önce yazdırma bildirimi ayrıntılarının uygulama ayarlarına kaydedildiği arka plan görevinin yöntemini gösterir.
public void Run(Windows.ApplicationModel.Background.IBackgroundTaskInstance taskInstance)
{
// Save notification details to local storage
PrintNotificationEventDetails details = (PrintNotificationEventDetails)taskInstance.TriggerDetails;
settings.Values[keyPrinterName] = details.PrinterName;
settings.Values[keyAsyncUIXML] = details.EventData;
// Demonstrate possible actions
ShowToast(details.PrinterName, details.EventData);
UpdateTile(details.PrinterName, details.EventData);
UpdateBadge();
}
Döşemeyi güncelleme
Yazdırma bildirimi ayrıntıları UpdateTile yöntemine gönderildiğinde, örnek uygulamanın arka plan görevi, bunların kare kutucuk üzerinde nasıl görüntüleneceğini gösterir. Kutucuklar hakkında daha fazla bilgi için "Kutucuk ve kutucuk bildirimine genel bakış" başlığına bkz
Bu örnek, UpdateTile dosyasında arka plan görevinin yöntemini gösterir.
void UpdateTile(string printerName, string bidiMessage)
{
TileUpdater tileUpdater = TileUpdateManager.CreateTileUpdaterForApplication();
tileUpdater.Clear();
XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150Text09);
XmlNodeList tileTextAttributes = tileXml.GetElementsByTagName("text");
tileTextAttributes[0].InnerText = printerName;
tileTextAttributes[1].InnerText = bidiMessage;
TileNotification tileNotification = new TileNotification(tileXml);
tileNotification.Tag = "tag01";
tileUpdater.Update(tileNotification);
}
Rozet güncelleştirme
yöntemi, UpdateBadge rozeti güncelleştirmek için BadgeNotification sınıfının nasıl kullanılacağını gösterir. Kutucuklar hakkında daha fazla bilgi için bkz. Rozetlere genel bakış.
Bu örnek, UpdateBadge dosyasında arka plan görevinin yöntemini gösterir.
void UpdateBadge()
{
XmlDocument badgeXml = BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeGlyph);
XmlElement badgeElement = (XmlElement)badgeXml.SelectSingleNode("/badge");
badgeElement.SetAttribute("value", "error");
var badgeNotification = new BadgeNotification(badgeXml);
BadgeUpdateManager.CreateBadgeUpdaterForApplication().Update(badgeNotification);
}
Kadeh kaldırma
Toast bildirimi, kullanıcının konuyla ilgili ve zaman kritiklik taşıyan bilgileri almasını sağlayan ve bir uygulamadaki ilgili içeriğe hızlı erişim sunan geçici bir iletidir. Kullanıcılara bildirimler, ilgilenilecek bir şeyi takip etmek üzere uygulamanıza dönme daveti olarak görüntülenmelidir. Daha fazla bilgi için Toast bildirimi genel bakışı bölümüne bakın.
Uygulamanın toast bildirimlerini etkinleştirmek için uygulama paketi manifestosunda toast özelliğine sahip olduğunu kaydetmesi gerekir. öğesinde VisualElements özniteliğini ToastCapable true olarak ayarlayın.
Important
Özellikle de işlem yapılamayan olaylar için her zaman bir toast bildirimi göstermenizi önermeyiz. Bu, kullanıcılar için can sıkıcı hale gelebilir ve bir uygulamadan gelen tüm bildirimleri kapatmalarına neden olabilir. Kullanıcının hemen ilgilenmesini gerektirmeyen olaylar için yalnızca kutucuğu ve rozeti güncelleştirmenizi ve bildirim göstermemenizi öneririz.
Bu örnek, uygulama paketi bildirim dosyası Package.appxmanifest içinde göründüğü şekliyle, VisualElements öğesindeki ToastCapable özniteliğini gösterir.
<VisualElements DisplayName="Device App For Printers C# sample" Logo="Assets\squareTile-sdk.png"
SmallLogo="Assets\smallTile-sdk.png" Description="DeviceAppForPrinters C# sample"
ForegroundText="light" BackgroundColor="#00b2f0" ToastCapable="true">
<DefaultTile ShowName="allLogos" ShortName="App4PrinterCS" WideLogo="Assets\tile-sdk.png" />
<SplashScreen Image="Assets\splash-sdk.png" BackgroundColor="#00b2f0" />
</VisualElements>
Bu örnek, PrintBackgroundTask.cs dosyasındaki ShowToast yönteminden alınmıştır.
title ve body adında iki dizeye dayalı bir bildirim nasıl yapılır?
void ShowToast(string title, string body)
{
//
// Get Toast template
//
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText02);
//
// Pass to app as eventArgs.detail.arguments
//
((XmlElement)toastXml.SelectSingleNode("/toast")).SetAttribute("launch", title);
//
// The ToastText02 template has 2 text nodes (a header and a body)
// Assign title to the first one, and body to the second one
//
XmlNodeList textList = toastXml.GetElementsByTagName("text");
textList[0].AppendChild(toastXml.CreateTextNode(title));
textList[1].AppendChild(toastXml.CreateTextNode(body));
//
// Show the Toast
//
ToastNotification toast = new ToastNotification(toastXml);
ToastNotificationManager.CreateToastNotifier().Show(toast);
}
5. Adım: Etkinleştirmeyi işleme
Bir yazdırma bildirimi arka plan görevini tetikledikten sonra, bir anımsatıcı bildirime veya döşemeye dokunarak uygulama başlatılabilir. Uygulamanız ikisinden de etkinleştirildiyse, özelliği aracılığıyla LaunchActivatedEventArgs.arguments uygulamaya bir parametre geçirilir. Etkinleştirme ve Microsoft Store uygulama yaşam döngüsü hakkında daha fazla bilgi için bkz. Uygulama yaşam döngüsü.
Uygulamanızın bu durumlardan birinde etkinleştirilip etkinleştirilmediğini belirlemek için, ilgili OnLaunched olayını işleyin ve olay işleyicisine geçirilen olay bağımsız değişkenlerini inceleyin. Olay bağımsız değişkenleri null ise, uygulama kullanıcı tarafından Başlangıç ekranından etkinleştirilmiştir. Olay bağımsız değişkenleri null değilse, uygulama bir bildirim veya kutucuktan başlatılmış demektir.
Bu örnek, App.xaml.cs dosyasındaki OnLaunched yönteminden gelmektedir. Bildirim veya kutucuklardan etkinleştirmenin nasıl işleneceğini gösterir.
protected override async void OnLaunched(LaunchActivatedEventArgs args)
{
Frame rootFrame = Window.Current.Content as Frame;
// Do not repeat app initialization when the Window already has content,
// just ensure that the window is active
if (rootFrame == null)
{
// Create a Frame to act as the navigation context and navigate to the first page
rootFrame = new Frame();
// Associate the frame with a SuspensionManager key
SuspensionManager.RegisterFrame(rootFrame, "AppFrame");
if (args.PreviousExecutionState == ApplicationExecutionState.Terminated)
{
// Restore the saved session state only when appropriate
try
{
await SuspensionManager.RestoreAsync();
}
catch (SuspensionManagerException)
{
//Something went wrong restoring state.
//Assume there is no state and continue
}
}
// Place the frame in the current Window
Window.Current.Content = rootFrame;
}
if (rootFrame.Content == null || !String.IsNullOrEmpty(args.Arguments))
{
// When the navigation stack isn't restored or there are launch arguments
// indicating an alternate launch (e.g.: via toast or secondary tile),
// navigate to the appropriate page, configuring the new page by passing required
// information as a navigation parameter
if (!rootFrame.Navigate(typeof(MainPage), args.Arguments))
{
throw new Exception("Failed to create initial page");
}
}
// Ensure the current window is active
Window.Current.Activate();
}
6. Adım: Bildirim ayrıntılarına erişme
Arka plan görevi ön plan uygulamasını doğrudan başlatamadığından, ön plan uygulamasının bunlara erişebilmesi için yazdırma bildirimi ayrıntılarının uygulamanın ayarlarına kaydedilmesi gerekir. Yerel depolamayı kullanma hakkında daha fazla bilgi için bkz . Hızlı Başlangıç: yerel uygulama verileri.
Bu örnek, yazdırma ayarları ve yazdırma bildirimleri örneğindeki uygulama ayarlarından yazıcı adı ve Bidi iletisinin nasıl alınacağını gösterir. Kod, InkLevel.xaml.cs dosyasındaki DisplayBackgroundTaskTriggerDetails yönteminden alınmıştır. Anahtar dizin değerleri, keyPrinterName ve keyAsyncUIXML, arka plan görevi olan PrintBackgroundTask.cs içinde kullanılan dize sabitleriyle aynıdır.
void DisplayBackgroundTaskTriggerDetails()
{
String outputText = "\r\n";
try
{
string printerName = settings.Values[keyPrinterName].ToString();
outputText += ("Printer name from background task triggerDetails: " + printerName);
}
catch (Exception)
{
outputText += ("No printer name retrieved from background task triggerDetails ");
}
outputText += "\r\n";
try
{
string asyncUIXML = settings.Values[keyAsyncUIXML].ToString();
outputText += ("AsyncUI xml from background task triggerDetails: " + asyncUIXML);
}
catch (Exception)
{
outputText += ("No asyncUI xml retrieved from background task triggerDetails ");
}
ToastOutput.Text += outputText;
}
Testing
UWP cihaz uygulamanızı test etmeden önce, cihaz meta verileri kullanılarak yazıcınıza bağlanmalıdır.
Cihaz uygulaması bilgilerini eklemek için yazıcınızın cihaz meta veri paketinin bir kopyasına ihtiyacınız vardır. Cihaz meta verileriniz yoksa, UWP cihaz uygulamanız için cihaz meta verileri oluşturma makalesinde açıklandığı gibi Cihaz Meta Verileri Yazma Sihirbazı'nı kullanarak oluşturabilirsiniz.
Bu makaledeki adımları tamamlamadan önce , Cihaz Meta Veri Yazma Sihirbazı'nı kullanmak için Microsoft Visual Studio Professional, Microsoft Visual Studio Ultimate veya Windows 8.1 için tek başına SDK'yı yüklemeniz gerekir. Windows için Microsoft Visual Studio Express'in yüklenmesi, SDK'nın sihirbazı içermeyen bir sürümünü yükler.
Aşağıdaki adımlar uygulamanızı oluşturur ve cihaz meta verilerini yükler.
Test imzalamayı etkinleştirin.
%ProgramFiles(x86)%\Windows Kits\8.1\bin\x86 klasöründeki DeviceMetadataWizard.exe dosyasına çift tıklayarak Cihaz Meta Verisi Yazma Sihirbazı’nı başlatın.
Araçlar menüsünde Test İmzasını Etkinleştir'i seçin.
Bilgisayarı yeniden başlatın
Çözüm (.sln) dosyasını açarak çözümü oluşturun. F7 tuşuna basın veya örnek yüklendikten sonra üstteki menüden Derleme Çözümü'ne> gidin.
Yazıcının bağlantısını kesin ve kaldırın. Cihaz bir sonraki algılandığında Windows'un güncelleştirilmiş cihaz meta verilerini okuması için bu adım gereklidir.
Cihaz meta verilerini düzenleyin ve kaydedin. Cihaz uygulamasını cihazınıza bağlamak için cihaz uygulamasını cihazınızla ilişkilendirmeniz gerekir.
Cihaz meta verileriniz henüz oluşturulmadıysa bkz. UWP cihaz uygulamanız için cihaz meta verileri oluşturma.
Cihaz Meta Veri Yazma Sihirbazı henüz açık değilse, %ProgramFiles(x86)%\Windows Kits\8.1\bin\x86'dan DeviceMetadataWizard.exe'ye çift tıklayarak başlatın.
Cihaz Meta Verilerini Düzenle'yi seçin. Bu seçenek, mevcut cihaz meta veri paketinizi düzenlemenizi sağlar.
Aç iletişim kutusunda UWP cihaz uygulamanızla ilişkilendirilmiş cihaz meta veri paketini bulun. (Bu dosya devicemetadata-ms uzantısına sahiptir.)
UWP cihaz uygulaması bilgilerini belirtin sayfasında, UWP cihaz uygulaması kutusuna Microsoft Store uygulama bilgilerini girin. Paket adını, Yayımcı adını ve UWP uygulama kimliğini otomatik olarak girmek için UWP uygulamabildirim dosyasını içeri aktar'ı seçin.
Uygulamanız yazıcı bildirimlerine kaydoluyorsa Bildirim işleyicileri kutusunu doldurun. Olay Kimliği alanına yazdırma olayı işleyicisinin adını girin. Olay Varlığı'nda, kodun bulunduğu dosyanın adını girin.
İşiniz bittiğinde, Son sayfasına gelene kadar İleri'yi seçin.
Cihaz meta veri paketini gözden geçir sayfasında, tüm ayarların doğru olduğundan emin olun ve Cihaz meta veri paketini yerel bilgisayardaki meta veri deposuna kopyala onay kutusunu seçin. Ardından Kaydet'i seçin.
Windows'un cihaz bağlandığında güncelleştirilmiş cihaz meta verilerini okuması için yazıcınızı yeniden bağlayın.
Troubleshooting
Sorun: Varsayılan "toast" bildirimi görünmüyor
Beklendiğinde varsayılan yazdırma bildirimi görünmüyorsa...
Olası neden: Test imzalama etkinleştirilmemiş. Açma hakkında bilgi için bu makaledeki Hata Ayıklama bölümüne bakın.
Olası neden: Açılır bildirimler etki alanı ilkeleri tarafından devre dışı bırakılmıştır. Alan adı(ndan) çıkın ve yeniden deneyin.
Olası neden: Yazıcı DriverEvents'i uygulamadı. v4 sürücünüzün Bidi ve DriverEvents'i destekleyip desteklemediğini denetleyin. Daha fazla bilgi için bkz. Özelleştirilmiş Kullanıcı Arabirimi için Sürücü Desteği.
Olası neden: Makinenin yazıcı kuyruğunda yeni bir işi yok. Ekranınızın sağ alt köşesinde yazıcı simgesinin gösterildiğinden emin olun. Aksi takdirde, başka bir yazdırma işi gönderin.
Olası neden: Arka plan görevi (
IBackgroundTask) için giriş noktanız, ön plan uygulamanızla aynı proje içindedir. Bu senaryoya izin verilmez. Arka plan görev işleyiciniz için tamamen yeni bir sınıfı ayırın.Olası neden: Uygulamanızdaki bildirimler için giriş noktası olan sınıf, manifest dosyanızda veya cihaz meta verilerinde yanlış belirtilmiştir; bu da uygulamanın arka plan ana bilgisayarı içinde çökmesine ve herhangi bir toast bildiriminin gösterilmemesine neden olur. Aşağıdaki sorunları denetleyin:
Giriş noktasının Bildirim Tasarımcısı'nın Bildirimler sekmesinde doğru verildiğinden emin olun. C# ve C++ için Namespace.ClassName biçiminde olmalıdır. JavaScript için, .js dosyasının göreli dizin yolu olmalıdır.
JavaScript uygulaması tamamlandıktan sonra close() öğesini çağırmalıdır.
C# sınıfının Windows.ApplicationModel.Background.IBackgroundTask uygulaması ve genel bir void
Run(Windows.ApplicationModel.Background.IBackgroundTaskInstance taskInstance)yöntemine sahip olması gerekir.C++ sınıfının Windows::ApplicationModel::Background::IBackgroundTask uygulamasının ve bir
virtual void Run(Windows::ApplicationModel::Background::IBackgroundTaskInstance^ taskInstance)yöntemi olması gerekir.
İlgili makaleler
- Rozet genel bakış (UWP uygulamaları)
- Kutucuk ve kutucuk bildirimine genel bakış (UWP uygulamaları)
- Kutucuklar ve rozetler için yönergeler ve denetim listesi (UWP uygulamaları)
- Toast bildirimi genel bakış (UWP uygulamaları)
- Toast bildirimleri (UWP uygulamaları) için yönergeler ve denetim listesi
- Özelleştirilmiş Kullanıcı Arabirimi için Sürücü Desteği
- v4 yazdırma sürücüleri geliştirme
- Yazıcı Uzantısı Arabirimleri (v4 Yazdırma Sürücüsü)
- Çift Yönlü İletişimler
- UWP uygulamalarını kullanmaya başlama
- UWP cihaz uygulaması oluşturma (adım adım kılavuz)
- UWP cihaz uygulaması için cihaz meta verileri oluşturma (adım adım kılavuz)