У меня есть функция, в которой пользователи могут импортировать изображение QR-кода из галереи телефона, и после импорта я декодирую его, используя jsQR . Он отлично работает для Android, но не для iOS.
Вот мой код ниже:
const handleImportScan = useCallback(async () => {
try {
// @ts-ignore
const uri = normalizeUri(photos[selected].node.image.uri);
const base64Image = await RNFS.readFile(uri, 'base64');
const png = PNG.sync.read(Buffer.from(base64Image, 'base64'));
const code = jsQR(
Uint8ClampedArray.from(png.data),
png.width,
png.height,
);
console.log('code:', code);
if (code) {
console.log('Found QR code', code);
}
} catch (error) {
console.log('err:', error);
}
}, [photos, selected]);
и вот моя ошибка:
err: Error: ENOENT: no such file or directory, open 'ph://CF888AC5-F690-45E8-8D05-9FFFDB8FE367/L0/001'
at promiseMethodWrapper (NativeModules.js:103)
at readFileGeneric (FS.common.js:160)
at Object.readFile (FS.common.js:310)
at _callee$ (VM6 ScanQRfromLib.bundle:150)
at tryCatch (runtime.js:45)
at Generator.invoke [as _invoke] (runtime.js:274)
at Generator.prototype.<computed> [as next] (runtime.js:97)
at tryCatch (runtime.js:45)
at invoke (runtime.js:135)
at runtime.js:170
Я получаю эту ошибку из следующей строки:
const base64Image = await RNFS.readFile(uri, 'base64');
Благодарю, если кто-то может помочь. Спасибо