capacitor-mlkit-digitalink-plugin
v0.4.1
Published
Capacitor plugin for the latest Google ML Kit Digital Ink Recognition SDKs (Android 19.0.0 / iOS 9.0.0).
Readme
capacitor-mlkit-digitalink-plugin
Capacitor plugin for use of the Google MLKit Digital Ink Recognition models.
Install
npm install capacitor-mlkit-digitalink-plugin
npx cap syncRequirements
- Android now bundles
com.google.mlkit:digital-ink-recognition:19.0.0, which adds Android 15 (16 KB page size) support. - iOS requires Xcode 16+, an iOS deployment target of 15.5 or newer, and Cocoapods
GoogleMLKit/DigitalInkRecognition9.0.0.
After upgrading, run pod repo update && pod install inside your iOS project so CocoaPods pulls the new Google ML Kit binaries.
API
initializePlugin()erase()logStrokes(...)doRecognition(...)downloadSingularModel(...)downloadMultipleModels(...)deleteModel(...)getDownloadedModels()- Interfaces
- Type Aliases
initializePlugin()
initializePlugin() => Promise<{ ok: boolean; msg: string; }>Initializes notifications on iOS -- NOT supported in Android due to the use of other event listeners
Returns: Promise<{ ok: boolean; msg: string; }>
erase()
erase() => Promise<{ ok: boolean; msg: string; }>Erases natively stored stroke/point/ink data
Returns: Promise<{ ok: boolean; msg: string; }>
logStrokes(...)
logStrokes(options: XYTOptions) => Promise<{ ok: boolean; msg: string; options: XYTOptions; }>Sends XY coordinate data to native code to be prepared for model inference Can include/exclude time values Ensure all units for coordinates/time are consistent between logs. Unit types don't matter, they just need to be the same -- all values are normalized
| Param | Type | Description |
| ------------- | ------------------------------------------------- | -------------------------------------------------------- |
| options | XYTOptions | - [ X coordinate, Y coordinate, T time in milliseconds ] |
Returns: Promise<{ ok: boolean; msg: string; options: XYTOptions; }>
doRecognition(...)
doRecognition(options: RecognitionOptions) => Promise<{ ok: boolean; msg: string; results: { candidates: string[]; scores: number[]; }; options: RecognitionOptions; }>Runs inference either on the provided model via the model param, or on the default English model. All params are optional.
| Param | Type |
| ------------- | ----------------------------------------------------------------- |
| options | RecognitionOptions |
Returns: Promise<{ ok: boolean; msg: string; results: { candidates: string[]; scores: number[]; }; options: RecognitionOptions; }>
downloadSingularModel(...)
downloadSingularModel(model: Model, callback: SingularModelCallback) => Promise<CallbackID>Downloads singular model. Last callback has the 'done' property set to true, and signals the last callback.
| Param | Type | Description |
| -------------- | ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| model | Model | model to download. Native code checks if model is valid and if it's already downloaded. |
| callback | SingularModelCallback | callback function that runs each time data is sent from the native code. |
Returns: Promise<string>
downloadMultipleModels(...)
downloadMultipleModels(models: Models, callback: MultipleModelCallback) => Promise<CallbackID>Downloads multiple models from a given array. Callback function will return a response or an error dependent on whether a given model has already been downloaded, is a valid/invalid model, or is finished being downloaded. The last model will be have the 'done' property set to true and signals the last callback.
| Param | Type | Description |
| -------------- | ----------------------------------------------------------------------- | --------------------------------------------------------------- |
| models | Models | array of models to download. |
| callback | MultipleModelCallback | callback that runs each time data is sent from the native code. |
Returns: Promise<string>
deleteModel(...)
deleteModel(options: DeleteModelOptions, callback: DeleteModelCallback) => Promise<CallbackID>Deletes a singular/collection of models downloaded to the device, or all models.
| Param | Type | Description |
| -------------- | ------------------------------------------------------------------- | ----------------------------------------------------------- |
| options | DeleteModelOptions | delete all models, a singular model, or an array of models. |
| callback | DeleteModelCallback | |
Returns: Promise<string>
getDownloadedModels()
getDownloadedModels() => Promise<{ ok: true; msg: string; models: string[]; }>Returns: Promise<{ ok: true; msg: string; models: string[]; }>
Interfaces
XYTOptions
| Prop | Type |
| ------- | --------------------- |
| x | number[] |
| y | number[] |
| t | number[] |
RecognitionOptions
| Prop | Type |
| ----------------- | -------------------------------------- |
| model | string |
| context | string |
| writingArea | { w: number; h: number; } |
Model
| Prop | Type |
| ----------- | ------------------- |
| model | string |
Response
| Prop | Type |
| ---------- | -------------------- |
| ok | boolean |
| done | boolean |
| msg | string |
Models
| Prop | Type |
| ------------ | --------------------- |
| models | string[] |
DeleteModelOptions
| Prop | Type |
| ------------ | --------------------- |
| all | boolean |
| model | string |
| models | string[] |
Type Aliases
SingularModelCallback
(response: Response, error?: any): void
CallbackID
string
MultipleModelCallback
(response: Response, error?: any): void
DeleteModelCallback
(response: Response, error?: any): void
