पृष्ठभूमि ::
- मैं एक विंडोज 8.1 बना रहा हूँ मोबाइल एसडीके में एक लाइसेंस प्रबंधक (एलएम) मॉड्यूल होगा।
- जब भी एप्लिकेशन शुरू होता है, ग्राहक को अपने कोड में लाइसेंस प्रबंधक को कॉल करना होगा।
- लाइसेंस प्रबंधक पंजीकृत होगा क्लाइंट को भेजें और JSON रिस्पांस का एक सेट भेजें जो भविष्य की मान्यताओं के लिए डिवाइस पर संग्रहीत किया जाएगा।
- लाइसेंस प्रबंधक फ़ंक्शन हमारे सर्वर पर अस्थाई कॉल करता है।
< मजबूत> समस्या ::
- एसडीके में दिए गए लाइसेंस प्रबंधक फ़ंक्शन को कॉल करने के लिए विंडोज 8.1 के अंदर सबसे अच्छी जगह क्या होगी?
- कैसे करें एलएम सिंक्रोनस को कॉल करें ताकि ग्राहक को प्रतिक्रियाओं को संभालने का मौका मिलेगा यदि लाइसेंस वैध नहीं है। या इससे पहले कि ग्राहक एसडीके में शामिल अन्य एपीआई को कॉल करता है।
कार्य पूर्ण:
-
मैंने एलएम फ़ंक्शन बनाया है और वांछित परिणाम लौटाता है।
-
एक डेमो ऐप बनाया गया है जो बटन क्लिक करने पर एलएम कॉल करता है।
कृपया नीचे नमूना कोड ढूंढें,
क्लाइंट अनुप्रयोग:
निजी async void Button_Click (ऑब्जेक्ट प्रेषक, RoutedEventArgs E) {try {var x = await sdk.InitializeAsync ("xxxxxxx-xxx-xxxx"); // एसडीके में शामिल एक एपीआई कॉलिंग APIResponse res = await laas.Function1_Async (par1, par2); Msg.Text = x.ToString (); } पकड़ (अपवाद पूर्व) {}}
एसडीके:
टास्क के & lt async सार्वजनिक; पूर्णांक & gt; InitializeAsync (स्ट्रिंग एपीकी) {int स्थिति = 0; अगर (! _िस आरंभिक) {status = GetLicenseInfo (स्थानीय सेटिंग्स) इंतजार करना; } This._isInitialized = true; वापसी स्थिति; } निजी async कार्य & lt; int & gt; GetLicenseInfo (Windows.Storage.ApplicationDataContainer स्थानीय सेटिंग) {एपीआईआरपीएसपैशन रिज़र्व = नया एपीआईआरपीएस (); Res.Status = -10; Res.Message = "अज्ञात त्रुटि!"; // वेब अनुरोध स्ट्रिंगबइल्डर डेटा = नया स्ट्रिंगबिल्डर बनाएं (); डेटा। Append (* JSON String *); स्ट्रिंग उरी = _regisUrl; का प्रयोग (एचटीटीपी क्लाइंट क्लाइंट = नया एचटीटीपी क्लाइंट ()) {उरी यूआरएल = नया उरी (उरी); स्ट्रिंग कंटेंट सामग्री = नया स्ट्रिंग कॉन्टैन्ट (डेटा। टॉस्ट्रिंग (), एन्कोडिंग.UTF8, "एप्लिकेशन / जेसन"); Client.DefaultRequestHeaders.Accept.Add (नया MediaTypeWithQualityHeaderValue ("एप्लिकेशन / जेसन")); Client.DefaultRequestHeaders.Host = url.Host; का उपयोग करके देखें {(HttpResponseMessage प्रतिक्रिया = इंतजार client.PostAsync (यूआरएल, सामग्री)) {अगर (response.IsSuccessStatusCode) {रेस = JsonConvert.DeserializeObject & LT; APIResponse & gt; (का इंतजार response.Content.ReadAsStringAsync ()); // जाँच करें कि रिस्पांस सफलता है अगर (res.Status == 1) localSettings.Values [ "IsDeviceRegistered"] = StringCipher.Encrypt ( "पंजीकृत"); }}} पकड़ {}} रिटर्न res.Status; }
किसी भी मदद की सराहना की जाएगी।
यह बदल जाएगा अपने कोड तुल्यकालिक होने के लिए ...
टास्क & LT; पूर्णांक & gt; टी = sdk.InitializeAsync ("xxxxxxx-xxx-xxxx"); t.Wait (); Var myvalue = t.Result; .....
No comments:
Post a Comment