@capgo/capacitor-zebra-datawedge

中文文档
8.2.4发布于 2026/11/07MPL-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 4.2万

Capacitor plugin for Zebra DataWedge profile management, notifications, queries, and soft scanning on Zebra Android devices.

原始使用文档
文档目录52 节
  1. ➡️ Get started for free
  2. Key features
  3. Documentation
  4. Compatibility
  5. Install
  6. Zebra setup
  7. Basic usage
  8. Notes
  9. Broadcast compatibility and security
  10. API
  11. cloneProfile(...)
  12. createProfile(...)
  13. deleteProfile(...)
  14. importConfig(...)
  15. renameProfile(...)
  16. restoreConfig()
  17. setConfig(...)
  18. setDisabledAppList(...)
  19. setIgnoreDisabledProfiles(...)
  20. registerForNotification(...)
  21. registerScanIntentAction(...)
  22. unRegisterForNotification(...)
  23. enumerateScanners()
  24. getActiveProfile()
  25. getAssociatedApps(...)
  26. getConfig(...)
  27. getDatawedgeStatus()
  28. getDisabledAppList()
  29. getIgnoreDisabledProfiles()
  30. getProfilesList()
  31. getScannerStatus()
  32. getVersionInfo()
  33. disableDatawedge()
  34. disableScannerInput()
  35. enableDatawedge()
  36. enableScannerInput()
  37. enumerateTriggers()
  38. notify(...)
  39. resetDefaultProfile()
  40. setDefaultProfile(...)
  41. setReportingOptions(...)
  42. softRfidTrigger()
  43. softScanTrigger(...)
  44. switchScanner(...)
  45. switchScannerParams(...)
  46. switchToProfile(...)
  47. getPluginVersion()
  48. addListener('scan', ...)
  49. addListener('notification', ...)
  50. Interfaces
  51. Type Aliases
  52. Enums

@capgo/capacitor-zebra-datawedge

Scan barcodes and RFID tags on Zebra Android devices from your Capacitor app with DataWedge: manage profiles, trigger scans and receive results. An open alternative to Ionic's enterprise Zebra scanner.

Capgo - Build Capacitor apps with AI, ship updates instantly

Capgo: push fixes to your Capacitor users in minutes, build signed iOS and Android apps without a Mac, and roll back in one click.

➡️ Get started for free

14-day unlimited free trial. No credit card required

🤖 Building with an AI coding agent? Install Capgo skills so Claude Code, Codex, Cursor, Copilot, or Gemini CLI know how to install and use @capgo/capacitor-zebra-datawedge in your Capacitor app: npx skills add Cap-go/capgo-skills. Then ask your agent: "Add @capgo/capacitor-zebra-datawedge to my Capacitor app and wire it up." Agent setup guides · Hosted MCP

@capgo/capacitor-zebra-datawedge for Capacitor apps

Key features

  • Scan events: the scan listener delivers barcode and RFID data.
  • Soft scanning: softScanTrigger() starts a scan from your UI.
  • Profiles: createProfile(), cloneProfile(), renameProfile(), deleteProfile() and setConfig().
  • Queries: enumerateScanners(), getActiveProfile(), getConfig() and getDatawedgeStatus().
  • Notifications: registerForNotification() with the notification event.
  • Platforms: Android. Android only, on Zebra devices with DataWedge. iOS and web return not available errors.

Capgo's Zebra DataWedge plugin brings Zebra's Android barcode and RFID capture APIs to Capacitor.

It is designed as an open alternative to Ionic's enterprise Zebra Scanner offering and exposes the same high-level groups:

  • ZebraConfiguration for profile management
  • ZebraNotification for scanner/profile status notifications
  • ZebraQuery for profile, scanner, and DataWedge queries
  • ZebraRuntime for enabling/disabling scanners and triggering scans

Documentation

The complete documentation is published here: https://capgo.app/docs/plugins/zebra-datawedge/

Compatibility

Plugin versionCapacitor compatibilityMaintained
v8.*.*v8.*.*✅

This plugin is Android-only in practice because Zebra DataWedge itself runs on Zebra Android devices.

Install

You can use our AI-Assisted Setup to install the plugin. Add the Capgo skills to your AI tool using the following command:

npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins

Then use the following prompt:

Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-zebra-datawedge` plugin in my project.

If you prefer Manual Setup, install the plugin by running the following commands and follow the platform-specific instructions below:

bun add @capgo/capacitor-zebra-datawedge
bunx cap sync

Zebra setup

Configure a DataWedge profile on the Zebra device before scanning:

  1. Associate the profile with your app.
  2. Enable Intent Output.
  3. Set Intent delivery to Broadcast Intent.
  4. Choose an intent action such as app.capgo.zebra.SCAN.

Basic usage

import {
  DataWedgeConfigMode,
  DataWedgePlugin,
  ZebraConfiguration,
  ZebraDataWedge,
  ZebraRuntime,
} from '@capgo/capacitor-zebra-datawedge';

const intentAction = 'app.capgo.zebra.SCAN';

await ZebraConfiguration.setConfig({
  profileName: 'CapgoZebraProfile',
  profileEnabled: true,
  configMode: DataWedgeConfigMode.CREATE_IF_NOT_EXIST,
  appList: [
    {
      packageName: 'com.example.app',
      activityList: ['*'],
    },
  ],
  pluginConfigs: [
    {
      pluginName: DataWedgePlugin.BARCODE,
      resetConfig: true,
      paramList: {
        scanner_selection: 'auto',
        scanner_input_enabled: 'true',
      },
    },
    {
      pluginName: DataWedgePlugin.INTENT,
      resetConfig: true,
      paramList: {
        intent_output_enabled: 'true',
        intent_action: intentAction,
        intent_delivery: 2,
      },
    },
  ],
});

await ZebraDataWedge.addListener('scan', (result) => {
  console.log('Scanned', result.data, result.labelType);
});

// Physical scan button: intent action is registered automatically from setConfig above.
// You can also register explicitly before listening:
// await ZebraRuntime.registerScanIntentAction(intentAction);

const result = await ZebraRuntime.softScanTrigger(intentAction);
console.log(result);

Notes

  • Query and configuration APIs depend on Zebra DataWedge being installed and enabled.
  • setConfig() registers scan intent actions from scanIntentAction and from INTENT plugin intent_action values in pluginConfigs after a successful update, whether or not scanIntentAction is provided.
  • registerScanIntentAction() registers a custom intent action without calling registerForNotification() or softScanTrigger(). Repeat on every app start because receiver registration is in-memory only.
  • softScanTrigger() waits for the next scan broadcast on the intent action you provide.
  • softRfidTrigger() uses the first registered scan intent action. Register a scan action first if you need RFID reads.
  • Web and iOS return "not available" errors for all DataWedge operations.

Broadcast compatibility and security

DataWedge can return query results without COMMAND_IDENTIFIER. The plugin accepts such a result only when its payload type matches exactly one pending query that expects that payload shape. Avoid overlapping pending calls that share the same result payload shape: replies without identifiers cannot reliably distinguish their owners. For example, getAssociatedApps() and getConfig() both send CMD_GET_CONFIG and expect CONFIG_RESULTS, so one pending call to each still overlaps. If a query times out, a delayed identifier-free reply to the timed-out query can still match a later sequential call that expects the same payload shape and resolve it with stale data. Replies with unknown nonempty identifiers are not assigned to another query.

On Android 14/API 34 and later, identifier-free replies that share platform sender identity must identify the DataWedge package. A sender can withhold its identity on API 34 and later, and the plugin then accepts matching identifier-free results. Identity is also unavailable on Android API 24 to 33, where the plugin accepts matching identifier-free results for compatibility with DataWedge.

Query correlation and payload validation do not guarantee sender authenticity. Any installed app can inject a matching identifier-free query result on every Android version, including by withholding its identity on API 34 and later. Replies with matching command identifiers, scan data and notification broadcasts also lack complete sender authentication. See the known sender-authentication limitations for details.

API

cloneProfile(...)

cloneProfile(options: CloneProfileOptions) => Promise<void>
ParamType
optionsCloneProfileOptions

createProfile(...)

createProfile(options: CreateProfileOptions) => Promise<void>
ParamType
optionsCreateProfileOptions

deleteProfile(...)

deleteProfile(options: DeleteProfileOptions) => Promise<void>
ParamType
optionsDeleteProfileOptions

importConfig(...)

importConfig(options: ImportConfigOptions) => Promise<void>
ParamType
optionsImportConfigOptions

renameProfile(...)

renameProfile(options: RenameProfileOptions) => Promise<void>
ParamType
optionsRenameProfileOptions

restoreConfig()

restoreConfig() => Promise<void>

setConfig(...)

setConfig(options: SetConfigOptions) => Promise<void>
ParamType
optionsSetConfigOptions

setDisabledAppList(...)

setDisabledAppList(options: SetDisabledAppListOptions) => Promise<void>
ParamType
optionsSetDisabledAppListOptions

setIgnoreDisabledProfiles(...)

setIgnoreDisabledProfiles(options: IgnoreDisabledProfilesResult) => Promise<void>
ParamType
optionsIgnoreDisabledProfilesResult

registerForNotification(...)

registerForNotification(options: Omit<RegisterForNotificationOptions, 'callback'>) => Promise<void>

Completes when the notification command is dispatched to DataWedge. This does not confirm registration, policy approval, or scanner readiness; observe notification events to determine the scanner's state.

ParamType
optionsOmit<RegisterForNotificationOptions, 'callback'>

registerScanIntentAction(...)

registerScanIntentAction(options: RegisterScanIntentActionOptions) => Promise<void>

Registers a DataWedge scan broadcast intent action in the Android plugin receiver (runtime only; call again on every app start). Use when your profile uses a custom intent_action and scans come from the physical trigger.

ParamType
optionsRegisterScanIntentActionOptions

unRegisterForNotification(...)

unRegisterForNotification(options: Omit<RegisterForNotificationOptions, 'callback'>) => Promise<void>

Completes when the unregistration command is dispatched to DataWedge. This does not confirm unregistration or policy approval; notifications may already be queued. Dispose of local listeners separately when using the low-level API.

ParamType
optionsOmit<RegisterForNotificationOptions, 'callback'>

enumerateScanners()

enumerateScanners() => Promise<{ scanners: ZebraDeviceScanner[]; }>

Android only. DataWedge may omit COMMAND_IDENTIFIER on query replies. The plugin accepts identifier-free replies only when the payload matches exactly one pending call that expects the same result payload shape. Avoid overlapping pending calls that share that shape. When sender identity is unavailable (Android API 24 to 33, or API 34+ when the platform withholds it), matching identifier-free replies are accepted for compatibility. If a call times out, a delayed identifier-free reply can still match a later sequential call that expects the same shape and resolve it with stale data. This default may change in the next Capacitor major version; see https://github.com/Cap-go/capacitor-zebra-datawedge/issues/25/.

Returns: Promise<{ scanners: ZebraDeviceScanner[]; }>


getActiveProfile()

getActiveProfile() => Promise<{ profileName: string; }>

Android only. DataWedge may omit COMMAND_IDENTIFIER on query replies. The plugin accepts identifier-free replies only when the payload matches exactly one pending call that expects the same result payload shape. Avoid overlapping pending calls that share that shape. When sender identity is unavailable (Android API 24 to 33, or API 34+ when the platform withholds it), matching identifier-free replies are accepted for compatibility. If a call times out, a delayed identifier-free reply can still match a later sequential call that expects the same shape and resolve it with stale data. This default may change in the next Capacitor major version; see https://github.com/Cap-go/capacitor-zebra-datawedge/issues/25/.

Returns: Promise<{ profileName: string; }>


getAssociatedApps(...)

getAssociatedApps(options: { profileName: string; }) => Promise<{ appList: DataWedgeAppConfig[]; }>

Android only. DataWedge may omit COMMAND_IDENTIFIER on query replies. The plugin accepts identifier-free replies only when the payload matches exactly one pending call that expects the same result payload shape. Avoid overlapping pending calls that share that shape. For example, getAssociatedApps() and getConfig() both send CMD_GET_CONFIG and expect CONFIG_RESULTS, so one pending call to each overlaps. When sender identity is unavailable (Android API 24 to 33, or API 34+ when the platform withholds it), matching identifier-free replies are accepted for compatibility. If a call times out, a delayed identifier-free reply can still match a later sequential call that expects the same shape and resolve it with stale data. This default may change in the next Capacitor major version; see https://github.com/Cap-go/capacitor-zebra-datawedge/issues/25/.

ParamType
options{ profileName: string; }

Returns: Promise<{ appList: DataWedgeAppConfig[]; }>


getConfig(...)

getConfig(options: GetConfigOptions) => Promise<ZebraProfileConfiguration>

Android only. DataWedge may omit COMMAND_IDENTIFIER on query replies. The plugin accepts identifier-free replies only when the payload matches exactly one pending call that expects the same result payload shape. Avoid overlapping pending calls that share that shape. For example, getAssociatedApps() and getConfig() both send CMD_GET_CONFIG and expect CONFIG_RESULTS, so one pending call to each overlaps. When sender identity is unavailable (Android API 24 to 33, or API 34+ when the platform withholds it), matching identifier-free replies are accepted for compatibility. If a call times out, a delayed identifier-free reply can still match a later sequential call that expects the same shape and resolve it with stale data. This default may change in the next Capacitor major version; see https://github.com/Cap-go/capacitor-zebra-datawedge/issues/25/.

ParamType
optionsGetConfigOptions

Returns: Promise<ZebraProfileConfiguration>


getDatawedgeStatus()

getDatawedgeStatus() => Promise<DataWedgeStatusResult>

Android only. DataWedge may omit COMMAND_IDENTIFIER on query replies. The plugin accepts identifier-free replies only when the payload matches exactly one pending call that expects the same result payload shape. Avoid overlapping pending calls that share that shape. When sender identity is unavailable (Android API 24 to 33, or API 34+ when the platform withholds it), matching identifier-free replies are accepted for compatibility. If a call times out, a delayed identifier-free reply can still match a later sequential call that expects the same shape and resolve it with stale data. This default may change in the next Capacitor major version; see https://github.com/Cap-go/capacitor-zebra-datawedge/issues/25/.

Returns: Promise<DataWedgeStatusResult>


getDisabledAppList()

getDisabledAppList() => Promise<{ appList: DataWedgeAppConfig[]; }>

Android only. DataWedge may omit COMMAND_IDENTIFIER on query replies. The plugin accepts identifier-free replies only when the payload matches exactly one pending call that expects the same result payload shape. Avoid overlapping pending calls that share that shape. When sender identity is unavailable (Android API 24 to 33, or API 34+ when the platform withholds it), matching identifier-free replies are accepted for compatibility. If a call times out, a delayed identifier-free reply can still match a later sequential call that expects the same shape and resolve it with stale data. This default may change in the next Capacitor major version; see https://github.com/Cap-go/capacitor-zebra-datawedge/issues/25/.

Returns: Promise<{ appList: DataWedgeAppConfig[]; }>


getIgnoreDisabledProfiles()

getIgnoreDisabledProfiles() => Promise<IgnoreDisabledProfilesResult>

Android only. DataWedge may omit COMMAND_IDENTIFIER on query replies. The plugin accepts identifier-free replies only when the payload matches exactly one pending call that expects the same result payload shape. Avoid overlapping pending calls that share that shape. When sender identity is unavailable (Android API 24 to 33, or API 34+ when the platform withholds it), matching identifier-free replies are accepted for compatibility. If a call times out, a delayed identifier-free reply can still match a later sequential call that expects the same shape and resolve it with stale data. This default may change in the next Capacitor major version; see https://github.com/Cap-go/capacitor-zebra-datawedge/issues/25/.

Returns: Promise<IgnoreDisabledProfilesResult>


getProfilesList()

getProfilesList() => Promise<{ profiles: string[]; }>

Android only. DataWedge may omit COMMAND_IDENTIFIER on query replies. The plugin accepts identifier-free replies only when the payload matches exactly one pending call that expects the same result payload shape. Avoid overlapping pending calls that share that shape. When sender identity is unavailable (Android API 24 to 33, or API 34+ when the platform withholds it), matching identifier-free replies are accepted for compatibility. If a call times out, a delayed identifier-free reply can still match a later sequential call that expects the same shape and resolve it with stale data. This default may change in the next Capacitor major version; see https://github.com/Cap-go/capacitor-zebra-datawedge/issues/25/.

Returns: Promise<{ profiles: string[]; }>


getScannerStatus()

getScannerStatus() => Promise<{ status: ScannerStatus | string; }>

Android only. DataWedge may omit COMMAND_IDENTIFIER on query replies. The plugin accepts identifier-free replies only when the payload matches exactly one pending call that expects the same result payload shape. Avoid overlapping pending calls that share that shape. When sender identity is unavailable (Android API 24 to 33, or API 34+ when the platform withholds it), matching identifier-free replies are accepted for compatibility. If a call times out, a delayed identifier-free reply can still match a later sequential call that expects the same shape and resolve it with stale data. This default may change in the next Capacitor major version; see https://github.com/Cap-go/capacitor-zebra-datawedge/issues/25/.

Returns: Promise<{ status: string; }>


getVersionInfo()

getVersionInfo() => Promise<ZebraDeviceVersionInfo>

Android only. DataWedge may omit COMMAND_IDENTIFIER on query replies. The plugin accepts identifier-free replies only when the payload matches exactly one pending call that expects the same result payload shape. Avoid overlapping pending calls that share that shape. When sender identity is unavailable (Android API 24 to 33, or API 34+ when the platform withholds it), matching identifier-free replies are accepted for compatibility. If a call times out, a delayed identifier-free reply can still match a later sequential call that expects the same shape and resolve it with stale data. This default may change in the next Capacitor major version; see https://github.com/Cap-go/capacitor-zebra-datawedge/issues/25/.

Returns: Promise<ZebraDeviceVersionInfo>


disableDatawedge()

disableDatawedge() => Promise<void>

disableScannerInput()

disableScannerInput() => Promise<void>

enableDatawedge()

enableDatawedge() => Promise<void>

enableScannerInput()

enableScannerInput() => Promise<void>

enumerateTriggers()

enumerateTriggers() => Promise<{ triggers: string[]; }>

Android only. DataWedge may omit COMMAND_IDENTIFIER on query replies. The plugin accepts identifier-free replies only when the payload matches exactly one pending call that expects the same result payload shape. Avoid overlapping pending calls that share that shape. When sender identity is unavailable (Android API 24 to 33, or API 34+ when the platform withholds it), matching identifier-free replies are accepted for compatibility. If a call times out, a delayed identifier-free reply can still match a later sequential call that expects the same shape and resolve it with stale data. This default may change in the next Capacitor major version; see https://github.com/Cap-go/capacitor-zebra-datawedge/issues/25/.

Returns: Promise<{ triggers: string[]; }>


notify(...)

notify(options: DataWedgeNotifyOptions) => Promise<void>
ParamType
optionsDataWedgeNotifyOptions

resetDefaultProfile()

resetDefaultProfile() => Promise<void>

setDefaultProfile(...)

setDefaultProfile(options: { profileName: string; }) => Promise<void>
ParamType
options{ profileName: string; }

setReportingOptions(...)

setReportingOptions(options: ReportingOptions) => Promise<void>
ParamType
optionsReportingOptions

softRfidTrigger()

softRfidTrigger() => Promise<ZebraScanResult>

Returns: Promise<ZebraScanResult>


softScanTrigger(...)

softScanTrigger(options: { intentAction: string; }) => Promise<ZebraScanResult>
ParamType
options{ intentAction: string; }

Returns: Promise<ZebraScanResult>


switchScanner(...)

switchScanner(options: { scannerIndex?: string; scannerIdentifier?: ScannerIdentifier; }) => Promise<void>
ParamType
options{ scannerIndex?: string; scannerIdentifier?: ScannerIdentifier; }

switchScannerParams(...)

switchScannerParams(options: SwitchScannerParamsOptions) => Promise<void>
ParamType
optionsSwitchScannerParamsOptions

switchToProfile(...)

switchToProfile(options: { profileName: string; }) => Promise<void>
ParamType
options{ profileName: string; }

getPluginVersion()

getPluginVersion() => Promise<PluginVersionResult>

Returns: Promise<PluginVersionResult>


addListener('scan', ...)

addListener(eventName: 'scan', listenerFunc: (event: ZebraScanResult) => void) => Promise<PluginListenerHandle>
ParamType
eventName'scan'
listenerFunc(event: ZebraScanResult) => void

Returns: Promise<PluginListenerHandle>


addListener('notification', ...)

addListener(eventName: 'notification', listenerFunc: (event: ZebraNotificationEvent) => void) => Promise<PluginListenerHandle>
ParamType
eventName'notification'
listenerFunc(event: ZebraNotificationEvent) => void

Returns: Promise<PluginListenerHandle>


Interfaces

CloneProfileOptions

PropType
destProfileNamestring
sourceProfileNamestring

CreateProfileOptions

PropType
profileNamestring

DeleteProfileOptions

PropType
profileNamesstring[]

ImportConfigOptions

PropType
fileListstring[]
folderPathstring

RenameProfileOptions

PropType
currentProfileNamestring
newProfileNamestring

SetConfigOptions

PropTypeDescription
appListDataWedgeAppConfig[]
configModeDataWedgeConfigMode
pluginConfigsDataWedgePluginConfig[]
profileEnabledboolean
profileNamestring
scanIntentActionstringRegisters this intent action in the plugin receiver after a successful setConfig (runtime only; call again on every app start). INTENT entries in pluginConfigs also register their intent_action values automatically after a successful setConfig, whether or not scanIntentAction is supplied.

DataWedgeAppConfig

PropType
activityListstring[]
packageNamestring

DataWedgePluginConfig

PropType
outputPluginNameDataWedgePlugin
paramListDataWedgePluginParameters
pluginNameDataWedgePlugin
resetConfigboolean

DataWedgePluginParameters

SetDisabledAppListOptions

PropType
appListDataWedgeAppConfig[]
configModeDataWedgeConfigMode

IgnoreDisabledProfilesResult

PropType
enabledboolean

RegisterForNotificationOptions

PropType
appNamestring
callback((notification: ZebraNotificationEvent) => void)
intentActionstring
notificationTypeDataWedgeNotificationType

ZebraNotificationEvent

PropType
notificationTypestring
profileNamestring
scannerStatusstring
statusstring
rawRecord<string, unknown>

RegisterScanIntentActionOptions

PropTypeDescription
intentActionstringDataWedge intent action used for barcode scan broadcasts (physical trigger or soft scan).

ZebraDeviceScanner

PropType
connectionStateboolean
idstring
indexnumber
namestring

ZebraProfileConfiguration

PropType
appListDataWedgeAppConfig[]
pluginConfigListDataWedgePluginConfig[]
profileEnabledboolean
profileNamestring

GetConfigOptions

PropType
pluginConfigsPluginConfigOptions[]
profileNamestring

PluginConfigOptions

PropType
outputPluginNameDataWedgePlugin
pluginNameDataWedgePlugin

DataWedgeStatusResult

PropType
isEnabledboolean

ZebraDeviceVersionInfo

PropType
barcodeVersionstring
dataWedgeVersionstring
decoderVersionstring
scannerFirmwareVersionsstring[]
simulScanVersionstring

DataWedgeNotifyOptions

PropType
deviceIdentifierstring
notificationSettingsnumber[]

ReportingOptions

PropType
reportingEnabledboolean
reportingGenerateOption'manual' | 'auto' | 'both'
reportingShowForManualImportboolean

ZebraScanResult

PropType
datastring
decodedModestring
intentActionstring
labelTypestring
sourcestring

SwitchScannerParamsOptions

PropType
scannerIdentifierScannerIdentifier
scannerParamsDataWedgePluginParameters

PluginVersionResult

PropType
versionstring

PluginListenerHandle

PropType
remove() => Promise<void>

Type Aliases

Omit

Construct a type with the properties of T except for those in type K.

Pick<T, Exclude<keyof T, K>>

Pick

From T, pick a set of properties whose keys are in the union K

{ [P in K]: T[P]; }

Exclude

Exclude from T those types that are assignable to U

T extends U ? never : T

Record

Construct a type with a set of properties K of type T

{ [P in K]: T; }

Enums

DataWedgeConfigMode

MembersValue
CREATE_IF_NOT_EXIST'CREATE_IF_NOT_EXIST'
OVERWRITE'OVERWRITE'
REMOVE'REMOVE'
UPDATE'UPDATE'

DataWedgePlugin

MembersValue
ADF'ADF'
BARCODE'BARCODE'
BDF'BDF'
DCP'DCP'
EKB'EKB'
INTENT'INTENT'
IP'IP'
KEYSTROKE'KEYSTROKE'
MSR'MSR'
RFID'RFID'
SERIAL'SERIAL'
TOKENS'TOKENS'
VOICE'VOICE'

ScannerStatus

MembersValue
CONNECTED'CONNECTED'
DISABLED'DISABLED'
DISCONNECTED'DISCONNECTED'
IDLE'IDLE'
SCANNING'SCANNING'
WAITING'WAITING'

DataWedgeNotificationType

MembersValue
CONFIGURATION_UPDATE'CONFIGURATION_UPDATE'
PROFILE_SWITCH'PROFILE_SWITCH'
SCANNER_STATUS'SCANNER_STATUS'

ScannerIdentifier

MembersValue
AUTO'AUTO'
BLUETOOTH_DS3678'BLUETOOTH_DS3678'
BLUETOOTH_RS6000'BLUETOOTH_RS6000'
BLUETOOTH_SSI'BLUETOOTH_SSI'
INTERNAL_CAMERA'INTERNAL_CAMERA'
INTERNAL_IMAGER'INTERNAL_IMAGER'
INTERNAL_LASER'INTERNAL_LASER'
PLUGABLE_SSI'PLUGABLE_SSI'
PLUGABLE_SSI_RS5000'PLUGABLE_SSI_RS5000'
SERIAL_SSI'SERIAL_SSI'
USB_SSI_DS3608'USB_SSI_DS3608'

版本与发布记录

@capgo/capacitor-zebra-datawedge 共发布 17 个版本,首次发布于 2026/03/25;过去 12 个月发布了 17 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.2.4latest2026/11/072 天前
8.2.32026/11/062 天前
8.2.22026/11/054 天前
8.2.12026/10/1525 天前
8.2.02026/10/1327 天前
8.1.112026/10/081 个月前

关于 @capgo/capacitor-zebra-datawedge 的常见问题

@capgo/capacitor-zebra-datawedge 是什么?

Capacitor plugin for Zebra DataWedge profile management, notifications, queries, and soft scanning on Zebra Android devices.

如何安装 @capgo/capacitor-zebra-datawedge?

在项目目录运行 npm install @capgo/capacitor-zebra-datawedge,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@capacitor/core(>=8.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@capgo/capacitor-zebra-datawedge 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@capgo/capacitor-zebra-datawedge 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@capgo/capacitor-zebra-datawedge 可以商用吗?

@capgo/capacitor-zebra-datawedge 使用 MPL-2.0 许可。弱 Copyleft:可以商用,也可以和闭源代码一起使用;但如果分发时修改了 MPL 授权的文件,这些文件的修改需以 MPL 开源。以上为概括,不构成法律意见,请以许可原文为准。

@capgo/capacitor-zebra-datawedge 的下载量有多少?

根据 npm 官方下载统计,@capgo/capacitor-zebra-datawedge 在 2026/10/09 – 2026/11/07 这 30 天内被下载 41,707 次,日均约 1,390 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@capgo/capacitor-zebra-datawedge 还在维护吗?

最新版本 8.2.4 发布于 2026/11/07(2 天前);至今共发布 17 个版本,其中过去 12 个月发布了 17 个;首次发布于 2026/03/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。