5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-05 04:50:09 +08:00
wails/mkdocs-website/docs/cy/development/introduction.md
2024-03-18 21:52:39 +11:00

7.3 KiB

Dyma'r cyfieithiad Cymraeg (cym) o'r testun Saesneg:

Cyflwyniad

!!! note Mae'r canllaw hwn yn gweithio ymlaen.

Diolch am ddymuno helpu gyda datblygu Wails! Bydd y canllaw hwn yn eich helpu i gychwyn.

Cychwyn

  • Cloniwch y storfa Git. Symudwch i'r gangen v3-alpha.

  • Gosodwch y CLI: cd v3/cmd/wails3 && go install

  • Dewisol: Os ydych am ddefnyddio'r system adeiladu i adeiladu cod blaen, bydd angen i chi osod npm.

Adeiladu

Ar gyfer rhaglenni syml, gallwch ddefnyddio'r gorchymyn go build safonol. Mae modd defnyddio go run hefyd.

Mae Wails hefyd yn cynnwys system adeiladu y gellir ei defnyddio i adeiladu prosiectau mwy cymhleth. Mae'n defnyddio'r system adeiladu wych Task. Am fwy o wybodaeth, gwiriwch y dudalen gartref Task neu runnwch wails task --help.

Cynllun prosiect

Mae'r prosiect yn cael y strwythur canlynol:

```
v3
├── cmd/wails3                  // CLI
├── examples                   // Enghreifftiau o apiau Wails
├── internal                   // Pecynnau mewnol
|   ├── runtime                // Y runtime JS Wails
|   └── templates              // Y templed prosiect a gynhelir
├── pkg
|   ├── application            // Y llyfrgell Wails craidd
|   └── events                 // Diffiniadau digwyddiadau
|   └── mac                    // Cod penodol i macOS a ddefnyddir gan addasiadau
|   └── w32                    // Cod penodol i Windows
├── plugins                    // Addasiadau a gynhelir
├── tasks                      // Tasgau cyffredinol
└── Taskfile.yaml              // Ffurfweddiad tasgau datblygu
```

Datblygu

Rhestr Tasgau Alpha

Rydym yn monitro materion hysbys a thasgau ar hyn o bryd yn y Rhestr Tasgau Alpha. Os ydych am helpu, edrychwch ar y rhestr hon a dilyn y cyfarwyddiadau yn y Adborth tudalen.

Ychwanegu swyddogaeth ffenestr

Y ffordd well o ychwanegu swyddogaeth ffenestr yw ychwanegu swyddogaeth newydd i'r ffeil pkg/application/webview_window.go. Dylai hon weithredu'r holl swyddogaeth sydd ei hangen ar gyfer pob platfform. Dylid galw unrhyw god platfform penodol drwy fethôd webviewWindowImpl. Gweithredir y rhyngwyneb hwn gan bob un o'r platfformau targed i ddarparu'r swyddogaeth benodol i'r platfform. Mewn rhai achosion, efallai na fydd yn gwneud dim. Ar ôl ychwanegu'r dull rhyngwyneb, sicrhewch fod pob platfform yn ei weithredu. Mae'r dull SetMinSize yn enghraifft dda o hyn.

  • Mac: webview_window_darwin.go
  • Windows: webview_window_windows.go
  • Linux: webview_window_linux.go

Dylai'r rhan fwyaf, os nad y cyfan, o'r cod platfform penodol gael ei redeg ar y prif drywydd. Er mwyn symleiddio hyn, mae nifer o ddulliau invokeSync wedi'u diffinio yn application.go.

Diweddaru'r runtime

Mae'r runtime wedi'i leoli yn v3/internal/runtime. Pan diweddarir y runtime, rhaid cymryd y camau canlynol:

wails3 task runtime:build

Digwyddiadau

Diffinnir digwyddiadau yn v3/pkg/events. Wrth ychwanegu digwyddiad newydd, rhaid cymryd y camau canlynol:

  • Ychwanegu'r digwyddiad i'r ffeil events.txt
  • Rhedeg wails3 task events:generate

Mae nifer o fathau o ddigwyddiadau: digwyddiadau platfform penodol i'r ap a'r ffenestr + digwyddiadau cyffredin. Mae'r digwyddiadau cyffredin yn ddefnyddiol ar gyfer trin digwyddiadau ar draws platfformau, ond nid ydych wedi'ch cyfyngu i'r "isaf cyffredin". Gallwch ddefnyddio'r digwyddiadau platfform penodol os oes angen i chi.

Wrth ychwanegu digwyddiad cyffredin, sicrhewch fod y digwyddiadau platfform penodol wedi'u mapio. Mae enghraifft o hyn yn window_webview_darwin.go:

		// Translate ShouldClose to common WindowClosing event
		w.parent.On(events.Mac.WindowShouldClose, func(_ *WindowEventContext) {
			w.parent.emit(events.Common.WindowClosing)
		})

NODYN: Efallai y byddwn yn ceisio awtomeiddio hyn yn y dyfodol drwy ychwanegu'r mapio at y diffiniad digwyddiad.

Addasiadau

Mae addasiadau yn ffordd o estyn swyddogaeth eich ap Wails.

Creu addasiad

Mae addasiadau yn strwythur Go safonol sy'n cydymffurfio â'r rhyngwyneb canlynol:

type Plugin interface {
    Name() string
    Init(*application.App) error
    Shutdown()
    CallableByJS() []string
    InjectJS() string
}

Mae'r dull Name() yn dychwelyd enw'r addasiad. Defnyddir hwn at ddibenion cofnodi.

Mae'r dull Init(*application.App) error yn cael ei alw pan gaiff yr addasiad ei lwytho. Mae'r paramedr *application.App yn yr ap y caiff yr addasiad ei lwytho iddo. Bydd unrhyw wallau yn atal yr ap rhag cychwyn.

Gelwir y dull Shutdown() pan gaiff yr ap ei ddidoli.

Mae'r dull CallableByJS() yn dychwelyd rhestr o swyddogaethau alladwy y gellir eu galw o'r blaen. Rhaid i enwau'r dulliau hyn gwatsh yn union ag enwau'r dulliau a alluogeir gan yr addasiad.

Mae'r dull InjectJS() yn dychwelyd JavaScript y dylid ei fewnosod i bob ffenestr wrth iddynt gael eu creu. Mae hyn yn ddefnyddiol ar gyfer ychwanegu swyddogaethau JavaScript cyfaddas i'r addasiad.

Cewch hyd i'r addasiadau mewnol yn y cyfeiriadur v3/plugins. Edrychwch arnynt am ysbrydoliaeth.

Tasgau

Mae'r CLI Wails yn defnyddio'r system adeiladu Task. Fe'i mewnforiwyd fel llyfrgell a'i ddefnyddio i redeg y tasgau a ddiffinnir yn Taskfile.yaml. Y prif gyswllt â Task ddigwydd yn v3/internal/commands/task.go.

Uwchraddio Taskfile

I wirio a oes diweddariad ar gyfer Taskfile, rhedwch wails3 task -version a gwiriwch yn erbyn gwefan Task.

I uwchraddio'r fersiwn o Taskfile a ddefnyddir, rhedwch:

wails3 task taskfile:upgrade

Os oes anghydnawsedd, dylai'r rhain ymddangos yn y ffeil v3/internal/commands/task.go.

Fel arfer, y ffordd orau o drwsio anghydnawsedd yw clonio'r storfa dasg yn https://github.com/go-task/task a gwirio hanes y git i benderfynu beth sydd wedi newid a pham.

I wirio bod yr holl newidiadau wedi gweithio'n gywir, ail-osodwch y CLI a gwirio'r fersiwn eto:

wails3 task cli:install
wails3 task -version

Agor PR

Gwnewch yn siŵr bod gan bob PR docyn cysylltiedig â nhw sy'n darparu cyd-destun y newid. Os nad oes tocyn, crëwch un yn gyntaf. Sicrhewch fod pob PR wedi diweddaru'r ffeil CHANGELOG.md gyda'r newidiadau a wnaed. Mae'r ffeil CHANGELOG.md wedi'i lleoli yn y cyfeiriadur mkdocs-website/docs.

Tasgau Amrywiol

Uwchraddio Taskfile

Mae'r CLI Wails yn defnyddio'r system adeiladu Task. Fe'i mewnforiwyd fel llyfrgell a'i ddefnyddio i redeg y tasgau a ddiffinnir yn Taskfile.yaml. Y prif gyswllt â Task ddigwydd yn v3/internal/commands/task.go.

I wirio a oes diweddariad ar gyfer Taskfile, rhedwch wails3 task -version a gwiriwch yn erbyn gwefan Task.

I uwchraddio'r fersiwn o Taskfile a ddefnyddir, rhedwch:

wails3 task taskfile:upgrade

Os oes anghydnawsedd, dylai'r rhain ymddangos yn y ffeil v3/internal/commands/task.go.

Fel arfer, y ffordd orau o drwsio anghydnawsedd yw clonio'r storfa dasg yn https://github.com/go-task/task a gwirio hanes y git i benderfynu beth sydd wedi newid a pham.

I wirio bod yr holl newidiadau wedi gweithio'n gywir, ail-osodwch y CLI a gwirio'r fersiwn eto:

wails3 task cli:install
wails3 task -version