Skip Ribbon Commands
Skip to main content

​​​​​​​

प्क्विकस्टार्ट: मौसम के टाइल और टोस्ट नोटिफिकेशन भेजना


विंडोज 10 के वर्षगाँठ अपडेट में हमने टोस्ट नोटिफिकेशन्स को लाइव टाइल्स के जैसे ही दृश्यात्मक रूप से से सक्षम बनाया है। इस क्विकस्टार्ट में, मौसम का अनुमान दिखानेवाले टोस्ट नोटिफिकेशन भेजने के लिए आपके टाइल नोटिफिकेशन के 5-दिनों के मौसम अनुमान का फिर से प्रयोग कैसे करना है यह हम आपको दिखायेंगे।

​चौड़ी लाइव टाइल 

टोस्ट नोटिफिकेशन

1. नोटिफिकेशन्सएक्सटेंशन्सNuGet पैकेज इंस्टॉल करना

नोटिफिकेशन्स को कोडद्वारा बनाने के लिए हम नोटिफिकेशन्सएक्सटेंशन्स का इस्तेमाल करने की सिफ़ारिश करते हैं, जो नोटिफिकेशन XML कंटेंट के लिए ऑब्जेक्ट मॉडल प्रदान करता है। आप खुद नोटिफिकेशन XML बना सकते हैं, लेकिन वह त्रुटिपूर्ण और अव्यवस्थित होगी। नोटिफिकेशन्सएक्सटेंशन्स की रचना और रखरखाव उस टीमने किया है जिनके पास माइक्रोसॉफ्ट में नोटिफिकेशन्स का स्वामित्व है।

NuGet में से NotificationsExtensions.Win10 इंस्टॉल करें (संस्करण 14332.0.0 या उसके बाद के संस्करण का चुनाव करना ना भूलें)।

2. नेमस्पेस डिक्लेरेशन्स जोड़ें

Windows.UI.Notifications में टाइल और टोस्ट API's शामिल है।

C# with NotificationsExtensions

 

usingNotificationsExtensions;

usingNotificationsExtensions.Tiles;

usingNotificationsExtensions.Toasts;

3. लाइव टाइल कैसे बनाएं

हम पहले लाइव टाइल कैसे बनाई गई है यह स्पष्ट करेंगे, क्योंकि इसके समान ऍडाप्टिव कंटेंट टोस्ट नोटिफिकेशन पर इस्तेमाल किया गया है। अगर आप ऍडाप्टिव नोटिफिकेशन्स के बारे में अनजान होंगे तो स्टोर में से Notifications Visualizer इंस्टॉल करें, जो आपको ऍडाप्टिव कंटेंट का संपादन करने की और तुरंत दृश्यात्मक प्रिव्यु देखने की सुविधा प्रदान करेगा।

टाइल नोटिफिकेशन को सबग्रुप्स में विभाजित करें

आपको जो टाइल नोटिफिकेशन बनानी है वह वास्तव में 5 सबग्रुप्स हैं... हर दिन के मौसम के अनुमान के लिए एक। निम्न चित्र में, दूसरे सबग्रुप को लाल रेखा के द्वारा स्पष्ट रूप से दर्शाया गया है। आप एक ऐसी विधि बना सकते हैं जो इन सबग्रुप्स का निर्माण करेगी, जिससे आपको केवल एक बार ही सबग्रुप कोड लिखना होगा।


C# with NotificationsExtensions

 

privateAdaptiveSubgroupGenerateSubgroup(stringday, stringimg, inttempHi, inttempLo)

{

    returnnewAdaptiveSubgroup()

    {

        HintWeight = 1,

 

        Children =

        {

            // Day

            newAdaptiveText()

            {

                Text = day,

                HintAlign = AdaptiveTextAlign.Center

            },

 

            // Image

            newAdaptiveImage()

            {

                Source = img,

                HintRemoveMargin = true

            },

 

            // High temp

            newAdaptiveText()

            {

                Text = tempHi + "°",

                HintAlign = AdaptiveTextAlign.Center

            },

 

            // Low temp

            newAdaptiveText()

            {

                Text = tempLo + "°",

                HintAlign = AdaptiveTextAlign.Center,

                HintStyle = AdaptiveTextStyle.CaptionSubtle

            }

        }

    };

}

चौड़ी टाइल के लिए कंटेंट का निर्माण

आगे, आपको चौड़ी टाइल के लिए आपके उपरोक्त सबग्रुप्स का इस्तेमाल करके वास्तविक कंटेंट का निर्माण करना आवश्यक है। हम इसे एक अलग विधि में विभाजित करेंगे, क्योंकि आपको छोटी, चौड़ी और बड़ी टाइलों के कंटेंट का निर्माण करने के लिए भी विधियों की आवश्यकता होगी (इन विधियों को क्विकस्टार्ट में से हटाया गया है लेकिन उन्हें नीचे संसाधनों में पूरे कोड नमूने में देखा जा सकता है)।


C# with NotificationsExtensions

 

privateTileBindingGenerateTileBindingWide()

{

    returnnewTileBinding()

    {

        Content = newTileBindingContentAdaptive()

        {

            Children =

            {

                newAdaptiveGroup()

                {

                    Children =

                    {

                        GenerateSubgroup("Mon", "Mostly Cloudy.png", 63, 42),

                        GenerateSubgroup("Tue", "Cloudy.png", 57, 38),

                        GenerateSubgroup("Wed", "Sunny.png", 59, 43),

                        GenerateSubgroup("Thu", "Sunny.png", 62, 42),

                        GenerateSubgroup("Fri", "Sunny.png", 71, 66)

                    }

                }

            }

        }

    };

}

टाइल नोटिफिकेशन कंटेंट का निर्माण करना

आखिर आपने पूरे टाइल नोटिफिकेशन कंटेंट का निर्माण किया है, जिसमें टाइल के सभी भिन्न आकारों के लिए कंटेंट का समावेश होगा। जैसे के पहले ज़िक्र किया हुआ है, छोटी, मध्यम और बड़ी टाइलों के लिए विधियों को क्विकस्टार्ट में से हटाया गया है लेकिन उन्हें संसाधन संभाग में उपलब्ध पूरे कोड नमूने में देखा जा सकता है।

C# with NotificationsExtensions

 

publicTileContentGenerateTileContent()

{

    returnnewTileContent()

    {

        Visual = newTileVisual()

        {

            TileSmall = GenerateTileBindingSmall(),

            TileMedium = GenerateTileBindingMedium(),

            TileWide = GenerateTileBindingWide(),

            TileLarge = GenerateTileBindingLarge(),

 

            // Set the base URI for the images, so we don't redundantly specify the entire path

            BaseUri = newUri("Assets/NotificationAssets/", UriKind.Relative)

        }

    };

}

टाइल नोटिफिकेशन भेजना

टाइल नोटिफिकेशन कैसे भेजना है यह सीखने के लिए कृपया Quickstart: Sending a local tile notification देखें।

4. टोस्ट नोटिफिकेशन कैसे बनाएं

अब हमारे पास अपना लाइव टाइल नोटिफिकेशन है, तो हम उसमें से कुछ कोड का इस्तेमाल टोस्ट नोटिफिकेशन बनाने के लिए करेंगे!


टोस्ट नोटिफिकेशन कंटेंट निर्माण करना

टोस्ट की शुरूआत हमेशा टेक्स्ट घटक से होनी चाहिए, इसलिए पहले हम आज के मौसम का वर्णन करने वाली टेक्स्ट स्ट्रींग जोडेंगे। अगर ऍडाप्टिव टोस्ट सपोर्ट (कोड के लिए नीचे देखें) करता होगा तो आप पाच सबग्रुप्स के साथ एक ग्रुप जोड़ सकते हैं जो आपने आपके लाइव टाइल के लिए भी इस्तेमाल किया था। अन्यथा आप ऍडाप्टिव टोस्ट को सपोर्ट ना करनेवाली प्रणाली के लिए अधिक दो जाँच घटक भी जोड़ सकते हैं (ध्यान रखें कि उन प्रणालीयों पर आप अधिकतम तीन टेक्स्ट घटक ले सकते हैं, इसलिए आपने केवल दो अतिरिक्त टेक्स्ट घटक जोड़ें है)।

C# with NotificationsExtensions

 

publicstaticToastContentGenerateToastContent()

{

    // Start by constructing the visual portion of the toast

    ToastBindingGeneric binding = newToastBindingGeneric();

 

    // We'll always have this summary text on our toast notification

    // (it is required that your toast starts with a text element)

    binding.Children.Add(newAdaptiveText()

    {

        Text = "Today will be mostly sunny with a high of 63 and a low of 42."

    });

 

    // If Adaptive Toast Notifications are supported

    if(IsAdaptiveToastSupported())

    {

        // Use the rich Tile-like visual layout

        binding.Children.Add(newAdaptiveGroup()

        {

            Children =

            {

                GenerateSubgroup("Mon", "Mostly Cloudy.png", 63, 42),

                GenerateSubgroup("Tue", "Cloudy.png", 57, 38),

                GenerateSubgroup("Wed", "Sunny.png", 59, 43),

                GenerateSubgroup("Thu", "Sunny.png", 62, 42),

                GenerateSubgroup("Fri", "Sunny.png", 71, 66)

            }

        });

    }

 

    // Otherwise...

    else

    {

        // We'll just add two simple lines of text

        binding.Children.Add(newAdaptiveText()

        {

            Text = "Monday <imgsrc="https://s.w.org/images/core/emoji/72x72/26c5.png" alt="⛅" draggable="false" class="emoji"> 63° / 42°"

        });

 

        binding.Children.Add(newAdaptiveText()

        {

            Text = "Tuesday <imgsrc="https://s.w.org/images/core/emoji/72x72/2601.png" alt="☁" draggable="false" class="emoji"> 57° / 38°"

        });

    }

 

    // Construct the entire notification

    returnnewToastContent()

    {

        Visual = newToastVisual()

        {

            // Use our binding from above

            BindingGeneric = binding,

 

            // Set the base URI for the images, so we don't redundantly specify the entire path

            BaseUri = newUri("Assets/NotificationAssets/", UriKind.Relative)

        },

 

        // Include launch string so we know what to open when user clicks toast

        Launch = "action=viewForecast&zip=98008"

    };

}​

टोस्ट नोटिफिकेशन भेजना

टोस्ट नोटिफिकेशन कैसे भेजना है (और उपयोगकर्ता द्वारा नोटिफिकेशन पर क्लिक करने का प्रबंधन कैसे करें) यह सीखने के लिए कृपया Quickstart: Sending a local toast notification and handling activations देखें।

ऍडाप्टिव टोस्ट सपोर्टेड है या नहीं इसकी जाँच करना

विंडोज 10 डेस्कटॉप और मोबाइल के (विंडोज 10 के वर्षगाँठ अपडेट के लिए) बिल्ड 14332 में ऍडाप्टिव टोस्ट का समावेश किया गया है। उपकरणों के अन्य गुट ऍडाप्टिव टोस्ट को सपोर्ट नहीं करते और उनमें केवल टेक्स्ट घटक और छवियों का ही समावेश होता है। अगर आप पुरानी प्रणालीयों को सपोर्ट करते होंगे तो आपके पास दो विकल्प होंगे: समान पेलोड भेजना (गुट पुरानी प्रणालीयों में ड़ाले जायेंगे) या अपने कोड को विभाजित करना और जहां ऍडाप्टिव टोस्ट सपोर्टेड होगा वहां विशिष्ट नोटिफिकेशन भेजना। आप दृश्यात्मक रूप से समृद्ध नोटिफिकेशन भेज सकते हैं या नहीं यह बताने के लिए आप इस विधि का इस्तेमाल कर सकते हैं...

C#

 

usingWindows.System.Profile;

 

privatestaticboolIsAdaptiveToastSupported()

{

    switch(AnalyticsInfo.VersionInfo.DeviceFamily)

    {

        // Desktop and Mobile started supporting adaptive toasts in build 14332

        case"Windows.Mobile":

        case"Windows.Desktop":

            returnGetOSVersion() > newVersion(10, 0, 14332, 0);

 

        // Other device families do not support adaptive toasts

        default:

            returnfalse;

    }

}

 

privatestaticVersion GetOSVersion()

{

    // The DeviceFamilyVersion is a string, which is actually a ulong number representing the version

    // https://www.suchan.cz/2015/08/uwp-quick-tip-getting-device-os-and-app-info/

 

    ulongversionAsLong = ulong.Parse(AnalyticsInfo.VersionInfo.DeviceFamilyVersion);

 

    ulongv1 = (versionAsLong& 0xFFFF000000000000L) >> 48;

    ulongv2 = (versionAsLong& 0x0000FFFF00000000L) >> 32;

    ulongv3 = (versionAsLong& 0x00000000FFFF0000L) >> 16;

    ulongv4 = (versionAsLong& 0x000000000000FFFFL);

 

    returnnewVersion((int)v1, (int)v2, (int)v3, (int)v4);

}

अंतिम टोस्ट नोटिफिकेशन!

ऍडाप्टिव टोस्ट को सपोर्ट करने वाली प्रणाली के लिए आपका कोड दृश्यात्मक रूप से समृद्ध नोटिफिकेशन का निर्माण करता है और पुरानी प्रणाली के लिए आपका कोड क्लासिक टेक्स्ट-आधारित नोटिफिकेशन की निर्मिती करता है। 

ऍडाप्टिव टोस्ट
क्लासिक टोस्ट​

​​​​​​​​​​​​​​​​​​​​​​

Read More on...

​​​
This site uses Unicode and Open Type fonts for Indic Languages. Powered by Microsoft SharePoint
©2017 Microsoft Corporation. All rights reserved.