mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-15 15:37:33 +08:00
support receiving images from the Web Share Target API Level 2 and directly opening AI image recognition on mobile version
This commit is contained in:
@@ -9,6 +9,7 @@ import {
|
||||
SW_ASSETS_CACHE_NAME,
|
||||
SW_CODE_CACHE_NAME,
|
||||
SW_MAP_CACHE_NAME,
|
||||
SW_SHARE_CACHE_NAME,
|
||||
SW_MESSAGE_TYPE_UPDATE_MAP_CACHE_CONFIG,
|
||||
SW_MESSAGE_TYPE_UPDATE_MAP_CACHE_CONFIG_RESPONSE,
|
||||
MAP_CACHE_MAX_ENTRIES
|
||||
@@ -103,6 +104,42 @@ async function getCacheTotalSize(cacheName: string): Promise<number> {
|
||||
return totalSize;
|
||||
}
|
||||
|
||||
export function getShareCacheImageBlob(): Promise<Blob | undefined> {
|
||||
if (!window.caches) {
|
||||
logger.error('caches API is not supported in this browser');
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
|
||||
return new Promise((resolve) => {
|
||||
window.caches.open(SW_SHARE_CACHE_NAME).then(cache => {
|
||||
cache.match(SW_SHARE_CACHE_NAME).then(response => {
|
||||
if (!response) {
|
||||
resolve(undefined);
|
||||
return;
|
||||
}
|
||||
|
||||
response.blob().then(blob => {
|
||||
cache.delete(SW_SHARE_CACHE_NAME).then(() => {
|
||||
resolve(blob);
|
||||
}).catch(error => {
|
||||
logger.warn('failed to delete share cache image blob', error);
|
||||
resolve(blob);
|
||||
});
|
||||
}).catch(error => {
|
||||
logger.error('failed to read share cache image blob', error);
|
||||
resolve(undefined);
|
||||
});
|
||||
}).catch(error => {
|
||||
logger.error('failed to match share cache image blob', error);
|
||||
resolve(undefined);
|
||||
});
|
||||
}).catch(error => {
|
||||
logger.error('failed to open share cache', error);
|
||||
resolve(undefined);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export function loadBrowserCacheStatistics(): Promise<BrowserCacheStatistics> {
|
||||
return new Promise((resolve, reject) => {
|
||||
const caches = window.caches;
|
||||
|
||||
Reference in New Issue
Block a user