Millistes olukordades võib tekkida seisund, kus kasutaja sisend on välja lülitatud (kasutaja interaktsioon on false) ja Vue ei saa puudutuste sündmusi töödelda?
sobes.tech AI
Vastus AI-lt
Seisund user interaction enabled false iOS tasemel UIView tähendab, et see UIView ja selle alamklassid ei saa vastu võtta puute sündmusi.
Situatsioonid, kus see võib juhtuda ja mõjutada Vue komponentide, näiteks WKWebView kaudu sisestatud, sündmuste töötlemist:
- Läbipaistev kattekiht: Kui
WKWebViewkohal on teine vaade, millel onisUserInteractionEnabled = trueja see katab täielikult või osaliseltWKWebViewala, siis puute sündmused haaratakse ülemise vaate poolt jaWKWebView-i Vue komponendid neid ei saa. WKWebView-i kasutajaliidese kasutamise keelamine:WKWebView-i enda omadusisUserInteractionEnabledon seatud väärtuselefalse. See täielikult keelab puutetundlikkuse töötlemise veebivaates.WKWebView-i vanema vaate kasutajaliidese kasutamise keelamine: KuiWKWebViewon mõneUIViewalamklass, ja selle vanemvaade on seatudisUserInteractionEnabled = false, siis ei saa ka selle kõik alamklassid, shWKWebView, vastu võtta puute sündmusi.- Modaalvaated või süsteemi teavituskontrollerid: Modaalne vaade (
UIViewController.present) või süsteemi teavituskontroller, mis kuvatakseWKWebView-i sisaldava põhivaate kohal, haarab kõik puute sündmused kuni modaalne vaade või teavitus on suletud. - Animatsioonid: Mõnel juhul võib animatsioonide ajal ajutiselt keelata vaate kasutajaliidese kasutamise, et vältida soovimatuid kasutaja tegevusi animatsiooni ajal.
- Pikaajalised taustategevused: Vanemates arhitektuurides või valesti rakendatud olukordades võib pikaajalise taustategevuse (nt andmete laadimine) ajal olla kasutajaliidese kasutamine valesti keelatud, et vältida kasutaja tegevusi kuni operatsiooni lõppemiseni.
- Auto Layouti vead: Vale Auto Layouti seadistused võivad põhjustada
WKWebViewnähtamatuks (suurus 0, varjab teise vaate taga) või selle raami väljaspool ekraani, mis teeb selle kasutaja jaoks mitteaktiivseks.
Vue kontekstis, mis töötab WKWebView sees, võivad kõik need iOS-spetsiifilised põhjused põhjustada seda, et sündmused touchstart, touchend, click ja teised, mis on vajalikud Vue direktiivide (v-on:click, @tap Quasar/Ionic Vue) või otse sündmuste töötlemise jaoks, lihtsalt ei jõua JavaScripti koodini WKWebView-is. Sellise olukorra tõrkeotsing nõuab vaadete hierarhia kontrollimist Xcode'is (ViewController Hierarchy Debugger) ja isUserInteractionEnabled omaduse oleku kontrollimist erinevatel tasemetel.