CodeService
The IAPMiniProgram SDK calls the CodeService SPI to launch the QR code or barcode scanner. For details on how the SPI functions, refer to the CodeService workflow.
This SPI provides the scan
method. The method details are as follows:
scan
IAPMiniprogram SDK calls the scan
method to launch the QR code or barcode scanner.
Method signature
scan(option: ScannerOption, apiContext: APIContext): Promise<ScannerResult>;
Request parameters
Field | Data type | Required | Description |
option | Yes | An object that specifies the details of the scan request from the mini program. When this parameter is not specified, the default values of this parameter are used. | |
apiContext | APIContext | Yes | A context object, which carries the mini program runtime metadata. |
Response parameters
Field | Data type | Required | Description |
result | Promise<ScannerResult> | Yes | The result of the |
Error codes
Error code | Error message | |
10 | ERROR_USER_CANCEL | Users cancel the scan action. |
2001 | ERROR_OPERATION_FAILED | Failed to scan the code. |
Samples
The following samples show how to implement the CodeService SPI to enable QR code and barcode scanning capabilities.
- Create a class that implements the CodeService interface.
- Implement the
scan
method.
The samples differ depending on whether to open a React Native page during the SPI call:
Open a React Native page
class TestCodeService implements CodeService {
async scan(
option: ScannerOption,
apiContext: APIContext
): Promise<ScannerResult> {
return new Promise<ScannerResult>(function (resolve) {
const result: ScannerResult = {
showReactNativePage: true,
bundleURLPath: 'XXX',
moduleName: 'XXX',
jsMainModulePath: 'XXX',
};
resolve(result);
});
}
}
Remain inside the mini program
class TestCodeService implements CodeService {
async scan(
option: ScannerOption,
apiContext: APIContext
): Promise<ScannerResult> {
return new Promise<ScannerResult>(function (resolve) {
const result: ScannerResult = {
};
resolve(result);
});
}
}