chrome.documentScan

Beschrijving

Gebruik de chrome.documentScan API om afbeeldingen van aangesloten documentscanners te ontdekken en op te halen.

Toestemmingen

documentScan

Beschikbaarheid

Chrome 44+ Alleen voor ChromeOS

Document Scan API

De Document Scan API is ontworpen om apps en extensies in staat te stellen de inhoud van papieren documenten te bekijken op een aangesloten documentscanner.

Soorten

CancelScanResponse

Chrome 125+

Eigenschappen

  • functie

    snaar

    Geeft dezelfde taakhandle terug die aan cancelScan() is doorgegeven.

  • resultaat

    Het resultaat van de annuleringsaanvraag van de backend. Als het resultaat OperationResult.SUCCESS of OperationResult.CANCELLED is, is de scan geannuleerd en is de scanner klaar om een ​​nieuwe scan te starten. Als het resultaat OperationResult.DEVICE_BUSY is, is de scanner nog bezig met het verwerken van de annuleringsaanvraag; de aanroeper moet even wachten en de aanvraag opnieuw proberen. Andere resultaatwaarden duiden op een permanente fout die niet opnieuw moet worden geprobeerd.

CloseScannerResponse

Chrome 125+

Eigenschappen

  • resultaat

    Het resultaat van het sluiten van de scanner. Zelfs als deze waarde niet SUCCESS is, is de handle ongeldig en mag deze niet meer voor verdere bewerkingen worden gebruikt.

  • scannerHandvat

    snaar

    Dezelfde scannerhandle als die werd doorgegeven aan closeScanner .

Configurability

Chrome 125+

Hoe een optie kan worden gewijzigd.

Enum

"NIET_CONFIGUREERBAAR"
Deze optie is alleen-lezen.

"SOFTWARE_CONFIGURABLE"
Deze optie kan in de software worden ingesteld.

"HARDWARE_CONFIGURABLE"
De gebruiker kan deze optie instellen door een schakelaar om te zetten of op een knop op de scanner te drukken.

ConnectionType

Chrome 125+

Geeft aan hoe de scanner op de computer is aangesloten.

Enum

"NIET GESPECIFICEERD"

"USB"

"NETWERK"

ConstraintType

Chrome 125+

Het gegevenstype van de beperking die wordt weergegeven door een OptionConstraint .

Enum

"INT_RANGE"
De beperking geldt voor een bereik van OptionType.INT -waarden. De eigenschappen min , max en quant van OptionConstraint zullen long zijn, en de eigenschap list zal niet ingesteld zijn.

"VAST BEREIK"
De beperking geldt voor een bereik van OptionType.FIXED -waarden. De eigenschappen min , max en quant van OptionConstraint zullen double zijn, en de eigenschap list zal niet ingesteld zijn.

"INT_LIJST"
De beperking geldt voor een specifieke lijst met OptionType.INT -waarden. De eigenschap OptionConstraint.list bevat long waarden en de andere eigenschappen zijn niet ingesteld.

"VAST_LIJST"
De beperking geldt voor een specifieke lijst met OptionType.FIXED -waarden. De eigenschap OptionConstraint.list bevat double waarden en de andere eigenschappen zijn niet ingesteld.

"STRING_LIST"
De beperking geldt voor een specifieke lijst met OptionType.STRING -waarden. De eigenschap OptionConstraint.list bevat DOMString waarden en de andere eigenschappen worden niet ingesteld.

DeviceFilter

Chrome 125+

Eigenschappen

  • lokaal

    boolean optioneel

    Retourneer alleen scanners die rechtstreeks op de computer zijn aangesloten.

  • zeker

    boolean optioneel

    Retourneer alleen scanners die gebruikmaken van een beveiligde transportmethode, zoals USB of TLS.

GetOptionGroupsResponse

Chrome 125+

Eigenschappen

  • groepen

    OptionGroup [] optioneel

    Als result SUCCESS is, wordt een lijst met optiegroepen weergegeven in de volgorde zoals die door het scannerstuurprogramma is opgegeven.

  • resultaat

    Het resultaat van het ophalen van de optiegroepen. Als de waarde hiervan SUCCESS is, wordt de eigenschap groups gevuld.

  • scannerHandvat

    snaar

    Dezelfde scannerhandle als die werd doorgegeven aan getOptionGroups .

GetScannerListResponse

Chrome 125+

Eigenschappen

  • resultaat

    Het resultaat van de opsomming. Houd er rekening mee dat er gedeeltelijke resultaten kunnen worden geretourneerd, zelfs als dit een fout aangeeft.

  • scanners

    Een mogelijk lege lijst met scanners die overeenkomen met het opgegeven DeviceFilter .

OpenScannerResponse

Chrome 125+

Eigenschappen

  • opties

    object optioneel

    Als result SUCCESS is, wordt een sleutel-waardepaar toegekend waarbij de sleutel een apparaatspecifieke optie is en de waarde een instantie van ScannerOption .

  • resultaat

    Het resultaat van het openen van de scanner. Als de waarde hiervan SUCCESS is, worden de eigenschappen scannerHandle en options ingevuld.

  • scannerHandvat

    string optioneel

    Als result SUCCESS is, ontvangt u een handle naar de scanner die voor verdere bewerkingen kan worden gebruikt.

  • scannerId

    snaar

    De scanner-ID die aan openScanner() wordt doorgegeven.

OperationResult

Chrome 125+

Een enum die het resultaat van elke bewerking aangeeft.

Enum

"ONBEKEND"
Er is een onbekende of algemene storing opgetreden.

"SUCCES"
De operatie is geslaagd.

"NIET ONDERSTEUND"
Deze bewerking wordt niet ondersteund.

"GEANNULEERD"
De operatie werd geannuleerd.

"APPARAAT_BEZET"
Het apparaat is bezet.

"ONGELDIG"
Ofwel de gegevens, ofwel een argument dat aan de methode is doorgegeven, zijn ongeldig.

"VERKEERD_TYPE"
De opgegeven waarde heeft het verkeerde gegevenstype voor de onderliggende optie.

"EOF"
Er zijn geen verdere gegevens beschikbaar.

"ADF_JAMMED"
De documentinvoer is vastgelopen.

"ADF_EMPTY"
De documentinvoer is leeg.

"COVER_OPEN"
Het laadklepdeksel is open.

"IO_FOUT"
Er is een fout opgetreden tijdens de communicatie met het apparaat.

"TOEGANG GEWEIGERD"
Het apparaat vereist authenticatie.

"GEEN_GEHEUGEN"
Er is onvoldoende geheugen beschikbaar op de Chromebook om de bewerking te voltooien.

"ONBEREIKBAAR"
Het apparaat is niet bereikbaar.

"VERMIST"
Het apparaat is losgekoppeld.

"INTERNAL_ERROR"
Er is ergens anders dan in de aanroepende applicatie een fout opgetreden.

OptionConstraint

Chrome 125+

Eigenschappen

  • lijst

    string[] | number[] optioneel

  • max

    nummer optioneel

  • min

    nummer optioneel

  • kwantitatief

    nummer optioneel

OptionGroup

Chrome 125+

Eigenschappen

  • leden

    snaar[]

    Een lijst met optienamen in de door de bestuurder opgegeven volgorde.

  • titel

    snaar

    Biedt een afdrukbare titel, bijvoorbeeld "Geometrie-opties".

OptionSetting

Chrome 125+

Eigenschappen

  • naam

    snaar

    Geeft de naam aan van de optie die moet worden ingesteld.

  • type

    Geeft het gegevenstype van de optie aan. Het gevraagde gegevenstype moet overeenkomen met het werkelijke gegevenstype van de onderliggende optie.

  • waarde

    tekenreeks | getal | boolean | getal[] optioneel

    Geeft de in te stellen waarde aan. Laat dit veld leeg om automatische instelling aan te vragen voor opties waarvoor autoSettable is ingeschakeld. Het opgegeven gegevenstype voor value moet overeenkomen met type .

OptionType

Chrome 125+

Het gegevenstype van een optie.

Enum

"ONBEKEND"
Het gegevenstype van de optie is onbekend. De eigenschap value zal niet worden ingesteld.

"BOOL"
De value de eigenschap zal één van de true zijn: waar of onwaar.

"INT"
Een getekend 32-bits geheel getal. De eigenschap value is van het type `long` of `long[]`, afhankelijk van of de optie meerdere waarden accepteert.

"VAST"
Een double in het bereik -32768-32767.9999 met een resolutie van 1/65535. De value eigenschap is double of double[] afhankelijk van of de optie meer dan één waarde accepteert. Double-waarden die niet exact kunnen worden weergegeven, worden afgerond naar het beschikbare bereik en de beschikbare precisie.

"SNAAR"
Een reeks willekeurige bytes, behalve NUL ('\0'). De value eigenschap zal een DOMString zijn.

"KNOP"
Een optie van dit type heeft geen waarde. Het instellen van een dergelijke optie veroorzaakt daarentegen een optiespecifiek neveneffect in het scannerstuurprogramma. Een knopvormige optie kan bijvoorbeeld door een scannerstuurprogramma worden gebruikt om standaardwaarden te selecteren of om een ​​automatische documentinvoer te instrueren om door te gaan naar het volgende vel papier.

"GROEP"
Groeperingsoptie. Geen waarde. Deze is opgenomen voor compatibiliteit, maar wordt normaal gesproken niet geretourneerd in ScannerOption waarden. Gebruik getOptionGroups() om de lijst met groepen en hun lidopties op te halen.

OptionUnit

Chrome 125+

Geeft het gegevenstype aan voor ScannerOption.unit .

Enum

"EENHEIDLOOS"
De waarde is een eenheidsloos getal. Het kan bijvoorbeeld een drempelwaarde zijn.

"PIXEL"
De waarde is een aantal pixels, bijvoorbeeld de afmetingen van een scan.

"BEETJE"
De waarde is het aantal bits, bijvoorbeeld de kleurdiepte.

"MM"
De waarde wordt gemeten in millimeters, bijvoorbeeld scanafmetingen.

"DPI"
De waarde wordt gemeten in dots per inch, bijvoorbeeld resolutie.

"PERCENTAGE"
De waarde is een percentage, bijvoorbeeld helderheid.

"MICROSECONDE"
De waarde wordt gemeten in microseconden, bijvoorbeeld belichtingstijd.

ReadScanDataResponse

Chrome 125+

Eigenschappen

  • gegevens

    ArrayBuffer optioneel

    Als result SUCCESS is, bevat het het volgende deel van de gescande afbeeldingsgegevens. Als result EOF is, bevat het het laatste deel van de gescande afbeeldingsgegevens.

  • geschatte voltooiing

    nummer optioneel

    Als result SUCCESS is, wordt een schatting gegeven van hoeveel van de totale scangegevens tot nu toe zijn geleverd, in het bereik van 0 tot 100.

  • functie

    snaar

    Geeft de taakhandle door die is doorgegeven aan readScanData() .

  • resultaat

    Het resultaat van het lezen van de gegevens. Als de waarde SUCCESS is, bevat de data het volgende (mogelijk lege) deel van de afbeeldingsgegevens dat klaar is om te worden gelezen. Als de waarde EOF is, bevat de data het laatste deel van de afbeeldingsgegevens.

ScannerInfo

Chrome 125+

Eigenschappen

  • verbindingstype

    Geeft aan hoe de scanner op de computer is aangesloten.

  • apparaatUuid

    snaar

    Voor het vergelijken met andere ScannerInfo vermeldingen die naar hetzelfde fysieke apparaat verwijzen.

  • afbeeldingsformaten

    snaar[]

    Een lijst met MIME-typen die kunnen worden opgevraagd voor de geretourneerde scans.

  • fabrikant

    snaar

    De fabrikant van de scanner.

  • model

    snaar

    Het scannermodel, indien beschikbaar, of een algemene omschrijving.

  • naam

    snaar

    Een voor mensen leesbare naam voor de scanner die in de gebruikersinterface wordt weergegeven.

  • protocolType

    snaar

    Een leesbare beschrijving van het protocol of de driver die gebruikt wordt om toegang te krijgen tot de scanner, zoals Mopria, WSD of Epson. Dit is vooral handig om een ​​gebruiker te laten kiezen tussen protocollen als een apparaat meerdere protocollen ondersteunt.

  • scannerId

    snaar

    De ID van een specifieke scanner.

  • zeker

    booleaans

    Indien dit waar is, kan het transport van de scannerverbinding niet worden onderschept door een passieve luisteraar, zoals TLS of USB.

ScannerOption

Chrome 125+

Eigenschappen

  • configureerbaarheid

    Geeft aan of en hoe de optie kan worden gewijzigd.

  • beperking

    OptionConstraint optioneel

    Definieert OptionConstraint voor de huidige scanneroptie.

  • beschrijving

    snaar

    Een uitgebreidere beschrijving van de optie.

  • isActief

    booleaans

    Geeft aan dat de optie actief is en kan worden ingesteld of opgevraagd. Indien onwaar, wordt de value eigenschap niet ingesteld.

  • isGeavanceerd

    booleaans

    Geeft aan dat de gebruikersinterface deze optie niet standaard moet weergeven.

  • isAutoSettable

    booleaans

    Kan automatisch worden ingesteld door het scannerstuurprogramma.

  • is detecteerbaar

    booleaans

    Geeft aan dat deze optie door software kan worden gedetecteerd.

  • isEmulated

    booleaans

    Wordt door het scannerstuurprogramma gesimuleerd indien waar.

  • naam

    snaar

    De optienaam moet bestaan ​​uit kleine ASCII-letters, cijfers en streepjes. Diakritische tekens zijn niet toegestaan.

  • titel

    snaar

    Een afdrukbare titel van één regel.

  • type

    Het gegevenstype dat in de eigenschap value is opgeslagen, is nodig om deze optie in te stellen.

  • eenheid

    De meeteenheid voor deze optie.

  • waarde

    tekenreeks | getal | boolean | getal[] optioneel

    De huidige waarde van de optie, indien van toepassing. Houd er rekening mee dat het gegevenstype van deze eigenschap moet overeenkomen met het gegevenstype dat is opgegeven in type .

ScanOptions

Eigenschappen

  • maxImages

    nummer optioneel

    Het aantal toegestane gescande afbeeldingen. De standaardwaarde is 1.

  • mimeTypes

    string[] optioneel

    De MIME-typen die door de beller worden geaccepteerd.

ScanResults

Eigenschappen

  • dataUrls

    snaar[]

    Een array met URL's van data-afbeeldingen in een formaat dat als "src"-waarde aan een afbeeldingstag kan worden doorgegeven.

  • mimeType

    snaar

    Het MIME-type van de dataUrls .

SetOptionResult

Chrome 125+

Eigenschappen

  • naam

    snaar

    Geeft de naam aan van de ingestelde optie.

  • resultaat

    Geeft het resultaat aan van het instellen van de optie.

SetOptionsResponse

Chrome 125+

Eigenschappen

  • opties

    object optioneel

    Een bijgewerkte sleutel-waardetoewijzing van optienamen naar ScannerOption -waarden met de nieuwe configuratie, nadat geprobeerd is alle opgegeven opties in te stellen. Deze heeft dezelfde structuur als de eigenschap options in OpenScannerResponse .

    Deze eigenschap wordt ingesteld, zelfs als sommige opties niet succesvol zijn ingesteld, maar wordt verwijderd als het ophalen van de bijgewerkte configuratie mislukt (bijvoorbeeld als de scanner tijdens het scannen wordt losgekoppeld).

  • resultaten

    Een reeks resultaten, één voor elke doorgegeven OptionSetting .

  • scannerHandvat

    snaar

    Geeft de scannerhandle door die is doorgegeven aan setOptions() .

StartScanOptions

Chrome 125+

Eigenschappen

  • formaat

    snaar

    Specificeert het MIME-type waarin de gescande gegevens moeten worden geretourneerd.

  • maxReadSize

    nummer optioneel

    Als een waarde groter dan nul wordt opgegeven, wordt het maximale aantal gescande bytes dat in één readScanData antwoord wordt geretourneerd, beperkt tot die waarde. De kleinst toegestane waarde is 32768 (32 KB). Als deze eigenschap niet is opgegeven, kan de grootte van een geretourneerd chunk zo groot zijn als de volledige gescande afbeelding.

StartScanResponse

Chrome 125+

Eigenschappen

  • functie

    string optioneel

    Als result SUCCESS is, wordt een handle verstrekt waarmee scangegevens kunnen worden gelezen of de taak kan worden geannuleerd.

  • resultaat

    Het resultaat van het starten van een scan. Als de waarde hiervan SUCCESS is, wordt de job ingevuld.

  • scannerHandvat

    snaar

    Geeft dezelfde scannerhandle terug die aan startScan() is doorgegeven.

Methoden

cancelScan()

Promise Chrome 125+
chrome.documentScan.cancelScan(
  job: string,
  callback?: function,
)
: Promise<CancelScanResponse>

Annuleert een gestarte scan en retourneert een Promise die wordt opgelost met een CancelScanResponse object. Als een callback wordt gebruikt, wordt het object daaraan doorgegeven.

Parameters

  • functie

    snaar

    De handle van een actieve scantaak die eerder is geretourneerd door een aanroep van startScan .

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (response: CancelScanResponse) => void

Retourneert

  • Promise< CancelScanResponse >

    Retourneert een Promise die wordt opgelost met het resultaat.

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

closeScanner()

Promise Chrome 125+
chrome.documentScan.closeScanner(
  scannerHandle: string,
  callback?: function,
)
: Promise<CloseScannerResponse>

Sluit de scanner met de meegegeven handle en retourneert een Promise die wordt opgelost met een CloseScannerResponse -object. Als een callback wordt gebruikt, wordt het object daaraan doorgegeven. Zelfs als het antwoord niet succesvol is, wordt de meegegeven handle ongeldig en mag deze niet meer voor verdere bewerkingen worden gebruikt.

Parameters

  • scannerHandvat

    snaar

    Specificeert de handle van een geopende scanner die eerder is geretourneerd door een aanroep van openScanner .

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (response: CloseScannerResponse) => void

Retourneert

  • Retourneert een Promise die wordt opgelost met het resultaat.

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

getOptionGroups()

Promise Chrome 125+
chrome.documentScan.getOptionGroups(
  scannerHandle: string,
  callback?: function,
)
: Promise<GetOptionGroupsResponse>

Haalt de groepsnamen en lidmaatschapsopties op van een scanner die eerder is geopend met openScanner . Deze methode retourneert een Promise die wordt opgelost met een GetOptionGroupsResponse -object. Als er een callback aan deze functie wordt doorgegeven, worden de geretourneerde gegevens daaraan doorgegeven.

Parameters

Retourneert

  • Retourneert een Promise die wordt opgelost met het resultaat.

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

getScannerList()

Promise Chrome 125+
chrome.documentScan.getScannerList(
  filter: DeviceFilter,
  callback?: function,
)
: Promise<GetScannerListResponse>

Haalt de lijst met beschikbare scanners op en retourneert een Promise die wordt opgelost met een GetScannerListResponse -object. Als er een callback aan deze functie wordt doorgegeven, worden de geretourneerde gegevens in plaats daarvan aan de callback doorgegeven.

Parameters

Retourneert

  • Retourneert een Promise die wordt opgelost met het resultaat en de lijst met scanners.

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

openScanner()

Promise Chrome 125+
chrome.documentScan.openScanner(
  scannerId: string,
  callback?: function,
)
: Promise<OpenScannerResponse>

Opent een scanner voor exclusieve toegang en retourneert een Promise die wordt opgelost met een OpenScannerResponse object. Als er een callback aan deze functie wordt doorgegeven, worden de geretourneerde gegevens in plaats daarvan aan die callback doorgegeven.

Parameters

  • scannerId

    snaar

    De ID van een te openen scanner. Deze waarde is afkomstig van een eerdere aanroep van getScannerList .

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (response: OpenScannerResponse) => void

Retourneert

  • Retourneert een Promise die wordt opgelost met het resultaat.

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

readScanData()

Promise Chrome 125+
chrome.documentScan.readScanData(
  job: string,
  callback?: function,
)
: Promise<ReadScanDataResponse>

Leest het volgende deel van de beschikbare afbeeldingsgegevens van een actieve taakhandle en retourneert een Promise die wordt opgelost met een ReadScanDataResponse object. Als een callback wordt gebruikt, wordt het object daaraan doorgegeven.

**Let op:** Het is geldig dat een responsresultaat SUCCESS is met een data van lengte nul. Dit betekent dat de scanner nog steeds bezig is, maar nog geen aanvullende gegevens gereed heeft. De beller moet even wachten en het opnieuw proberen.

Wanneer de scantaak is voltooid, bevat het antwoord de resultaatwaarde EOF . Dit antwoord kan een laatste niet-nul data element bevatten.

Parameters

Retourneert

  • Retourneert een Promise die wordt opgelost met het resultaat.

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

scan()

Belofte
chrome.documentScan.scan(
  options: ScanOptions,
  callback?: function,
)
: Promise<ScanResults>

Voert een documentenscan uit en retourneert een Promise die wordt opgelost met een ScanResults object. Als er een callback aan deze functie wordt doorgegeven, worden de geretourneerde gegevens daaraan doorgegeven.

Parameters

  • opties

    Een object dat scanparameters bevat.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (result: ScanResults) => void

Retourneert

  • Belofte< ScanResultaten >

    Chrome 96+

    Retourneert een Promise die wordt opgelost met de scanresultaten.

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

setOptions()

Promise Chrome 125+
chrome.documentScan.setOptions(
  scannerHandle: string,
  options: OptionSetting[],
  callback?: function,
)
: Promise<SetOptionsResponse>

Stelt opties in op de opgegeven scanner en retourneert een Promise die wordt opgelost met een SetOptionsResponse object dat het resultaat bevat van de poging om elke waarde in te stellen in de volgorde van het meegeleverde OptionSetting -object. Als een callback wordt gebruikt, wordt het object daaraan doorgegeven.

Parameters

  • scannerHandvat

    snaar

    De handle van de scanner waarop de opties moeten worden ingesteld. Dit moet een waarde zijn die eerder is geretourneerd door een aanroep van openScanner .

  • opties

    Een lijst met OptionSetting objecten die op de scanner moeten worden toegepast.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (response: SetOptionsResponse) => void

Retourneert

  • Promise< SetOptionsResponse >

    Retourneert een Promise die wordt opgelost met het resultaat.

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

startScan()

Promise Chrome 125+
chrome.documentScan.startScan(
  scannerHandle: string,
  options: StartScanOptions,
  callback?: function,
)
: Promise<StartScanResponse>

Start een scan op de opgegeven scanner en retourneert een Promise die wordt opgelost met een StartScanResponse . Als een callback wordt gebruikt, wordt het object daaraan doorgegeven. Als de aanroep succesvol was, bevat het antwoord een taak-handle die in volgende aanroepen kan worden gebruikt om scangegevens te lezen of een scan te annuleren.

Parameters

  • scannerHandvat

    snaar

    De handle van een geopende scanner. Dit moet een waarde zijn die eerder is geretourneerd door een aanroep van openScanner .

  • Een StartScanOptions object dat de te gebruiken scanopties aangeeft. De eigenschap StartScanOptions.format moet overeenkomen met een van de waarden die worden geretourneerd in de ScannerInfo van de scanner.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (response: StartScanResponse) => void

Retourneert

  • Promise< StartScanResponse >

    Retourneert een Promise die wordt opgelost met het resultaat.

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.