मैंने Svelte3 का उपयोग करके KaiOS के लिए एक ऐप विकसित करते समय इस अजीब समस्या में भाग लिया है। जब इनपुट फ़ील्ड को संख्या टाइप करने के लिए सेट किया जाता है तो बैकस्पेस काम नहीं करता है। बिलकुल।

<input
 bind:this={ref}
 bind:value
 type="number" />

जब यह "टेक्स्ट" पर सेट होता है तो यह पूरी तरह से ठीक काम करता है। बैकस्पेस वर्णों को दबाते ही हटा देता है। इस मामले में बैकस्पेस KaiOS उपकरणों पर "कॉल एंड" बटन है। मुझे नहीं पता कि यह KaiOS समस्या है या Svelte3 समस्या।

मैं वेबडेव प्रौद्योगिकियों में बहुत कुशल नहीं हूं, इसलिए मुझे नहीं पता कि और क्या प्रयास करना है। कुछ अतिरिक्त जानकारी जो किसी चीज़ की ओर इशारा कर सकती है।

मेरे पास विश्व स्तर पर एक श्रोता है

 window.addEventListener("keydown", onKeyDown, true);

जो मेरे KeyListener में संलग्न है जिसका उपयोग मैं चुनिंदा तत्वों के माध्यम से अपने ऐप नेविगेशन को नियंत्रित करने के लिए करता हूं। इनपुट फ़ील्ड में फ़ोकस होने पर बैकस्पेस दबाए जाने पर यह भी सक्रिय नहीं होता है। जिन चीजों की मैंने कोशिश की है।

  • ऑनकीडाउन, ऑनकीअप, ऑनकीप्रेस्ड को फ़ंक्शन असाइन करें (उनमें से कोई भी बैकस्पेस कॉल को सक्रिय नहीं करता है)
  • घटना श्रोता को हटा दिया जिसका मैंने ऊपर उल्लेख किया है, कुछ भी नहीं बदलता है।
  • शुद्ध जेएस इनलाइन कार्यों के रूप में कार्यों को गैर-विस्तृत तरीके से असाइन करें।

KaiOS पर केवल ऑनकीडाउन फ़ायर होता है, जो किसी भी वेब देव JS विशेषज्ञों को संकेत दे सकता है। मुझे नहीं मालूम और क्या करना है। किसी भी सुझाव की सराहना की जाएगी।

2
Filled Stacks 27 मार्च 2020, 19:48
क्या आप अपने svelte ऐप को वास्तविक डिवाइस या एमुलेटर में चलाने में सफल रहे हैं? जब मैं वेबसर्वर का उपयोग करके अपने ऐप की सेवा करता हूं तो यह ठीक चलता है, लेकिन मुझे एमुलेटर में जो कुछ मिला वह एक खाली स्क्रीन है
 – 
Vector
23 मई 2020, 05:57
हां। मैं थोड़ी देर के लिए डिवाइस पर चल रहा हूं। यदि आप svelte का उपयोग कर रहे हैं तो आपके किसी भी घटक के लिए ऐप में कहीं भी स्लॉट तत्व नहीं हो सकते हैं। यह नहीं चलता है और कोई त्रुटि नहीं है। मुझे नहीं पता कि यह ऐसा क्यों करता है, मैं एक समस्या दर्ज करना चाहता हूं लेकिन मुझे नहीं पता कि क्या वे सभी KaiOS सेटअप से गुजरेंगे और डिवाइस पर चलने के लिए डिवाइस प्राप्त करेंगे।
 – 
Filled Stacks
25 मई 2020, 17:30

2 जवाब

विंडो पर ईवेंट को हैंडल करने के लिए आप <svelte:window> का उपयोग कर सकते हैं। उदाहरण के लिए:

<svelte:window on:keypress={handleKeypress}/>

लेकिन अगर आप केवल एक इनपुट पर मॉनिटर कीप्रेस करना चाहते हैं तो आप इसे <input> पर सीधे <input on:keypress={...}/> के साथ कर सकते हैं।

यहां इनपुट पर कीप्रेस को संभालने का एक उदाहरण दिया गया है: https://svelte.dev/repl/ bfd93b0799c142979eefa1f2558bfb96?version=3.20.1

0
joshnuss 28 मार्च 2020, 23:21
अरे @joshnuss मैंने भी ऐसा किया है। जब यह टाइप = "नंबर" पर सेट होता है, तब भी बैकस्पेस बटन सक्रिय नहीं होता है। हमें पता चला कि टाइप को "टेल" पर सेट करने से यह अपेक्षा के अनुरूप काम करता है। बहुत अजीब बग लेकिन अभी के लिए यही समाधान है
 – 
Filled Stacks
30 मार्च 2020, 10:46

हमें नहीं पता कि यह क्यों काम करता है लेकिन इनपुट प्रकार को "टेल" पर सेट करने से बैकस्पेस कुंजी आग लग जाती है और इनपुट फ़ील्ड सामान्य के रूप में कार्य करती है जबकि अभी भी केवल संख्याओं की अनुमति है।

2
Filled Stacks 30 मार्च 2020, 10:47
हाँ, यह समाधान मेरे लिए समस्या हल करता है! बहुत बहुत धन्यवाद!
 – 
Bikash Das
4 मार्च 2021, 18:45