2.9 KiB
Digwyddiadau
Yn v3, mae 3 math o ddigwyddiadau:
- Digwyddiadau Cymhwysiad
- Digwyddiadau Ffenestr
- Digwyddiadau Cyfaddas
Digwyddiadau Cymhwysiad
Mae digwyddiadau cymhwysiad yn ddigwyddiadau a allbynir gan y cymhwysiad. Mae'r digwyddiadau hyn yn cynnwys digwyddiadau brodorol fel ApplicationDidFinishLaunching
ar macOS.
Digwyddiadau Ffenestr
Mae digwyddiadau ffenestr yn ddigwyddiadau a allbynir gan ffenestr. Mae'r digwyddiadau hyn yn cynnwys digwyddiadau brodorol fel WindowDidBecomeMain
ar macOS. Diffinnir digwyddiadau cyffredin hefyd, fel y maent yn gweithio ar draws platfformau, e.e. WindowClosing
.
Digwyddiadau Cyfaddas
Mae'r digwyddiadau y mae'r defnyddiwr yn eu diffinio yn cael eu galw WailsEvents
. Mae hyn er mwyn eu gwahaniaethu o'r gwrthrych Event
a ddefnyddir i gyfathrebu gyda'r porwr. Mae WailsEvents bellach yn wrthrychau sy'n erynu holl fanylion digwyddiad. Mae hyn yn cynnwys enw'r digwyddiad, y data, a ffynhonnell y digwyddiad.
Mae'r data sy'n gysylltiedig â WailsEvent bellach yn un gwerth. Os oes angen mwy nag un gwerth, gellir defnyddio strwythur.
Galwadau digwyddiad a llofnod swyddogaeth Emit
Mae llofnodion y galwadau digwyddiad (fel y defnyddir gan On
, Once
& OnMultiple
) wedi newid. Yn v2, naeth y swyddogaeth alwad dderbyn data dewisol. Yn v3, mae'r swyddogaeth alwad yn derbyn gwrthrych WailsEvent
sy'n cynnwys yr holl ddata sy'n berthnasol i'r digwyddiad.
Yn yr un modd, mae'r swyddogaeth Emit
wedi newid. Yn lle cymryd enw a data dewisol, mae'n cymryd un gwrthrych WailsEvent
y bydd yn ei allbynnu.
Off
a OffAll
Yn v2, byddai galwadau Off
a OffAll
yn tynnu digwyddiadau i ffwrdd yn JS ac yn Go. Oherwydd natur aml-ffenestr v3, mae hyn wedi newid fel bod y dulliau hyn ond yn berthnasol i'r cyd-destun y'u galwyd. Er enghraifft, os ydych yn galw Off
mewn ffenestr, dim ond digwyddiadau ar gyfer y ffenestr honno y bydd yn eu tynnu. Os ydych yn defnyddio Off
yn Go, dim ond digwyddiadau ar gyfer Go y bydd yn eu tynnu.
Bachau
Mae Bachau Digwyddiad yn nodwedd newydd yn v3. Maent yn caniatáu i chi fachlu i mewn i'r system ddigwyddiadau a chyflawni gweithredoedd pan fydd digwyddiadau penodol yn cael eu hallbynnu. Er enghraifft, gallwch fachlu i mewn i'r digwyddiad WindowClosing
a chyflawni rhywfaint o lanhau cyn i'r ffenestr gau. Gellir cofrestru bachau ar lefel y cymhwysiad neu ar lefel y ffenestr gan ddefnyddio RegisterHook
. Bydd bachau lefel cymhwysiad ar gyfer digwyddiadau cymhwysiad. Bydd bachau lefel ffenestr ond yn cael eu galw ar gyfer y ffenestr y'u cofrestrir.
Nodiadau datblygwr
Pan allbynwch ddigwyddiad yn Go, bydd yn dosbarthu'r digwyddiad i wrrandawyr Go lleol a hefyd i bob ffenestr yn y cymhwysiad. Pan allbynwch ddigwyddiad yn JS, mae'n nawr yn anfon y digwyddiad at y cymhwysiad. Caiff hwn ei brosesu fel petai wedi ei allbynnu yn Go, fodd bynnag bydd ID y anfonwr yn bod hwnnw o'r ffenestr.