From c34d002b876162eae03dae1a7d4d78d97c5cccba Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Fri, 28 Feb 2025 12:02:43 +0800 Subject: [PATCH] :bug: Cannot long press to paste on mobile devices https://github.com/siyuan-note/siyuan/issues/14218 --- app/src/protyle/util/compatibility.ts | 33 ++++++++++++++------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/app/src/protyle/util/compatibility.ts b/app/src/protyle/util/compatibility.ts index 7a52d62b5..64fc5f727 100644 --- a/app/src/protyle/util/compatibility.ts +++ b/app/src/protyle/util/compatibility.ts @@ -50,23 +50,24 @@ export const readClipboard = async () => { } else if (isInHarmony()) { text.textPlain = window.JSHarmony.readClipboard(); } - if (typeof navigator.clipboard === "undefined" || !navigator.clipboard.read) { - return text; - } - const clipboardContents = await navigator.clipboard.read(); - for (const item of clipboardContents) { - if (item.types.includes("text/html")) { - const blob = await item.getType("text/html"); - text.textHTML = await blob.text(); - } - if (item.types.includes("text/plain")) { - const blob = await item.getType("text/plain"); - text.textPlain = await blob.text(); - } - if (item.types.includes("image/png")) { - const blob = await item.getType("image/png"); - text.files = [new File([blob], "image.png", {type: "image/png", lastModified: Date.now()})]; + + try { + const clipboardContents = await navigator.clipboard.read(); + for (const item of clipboardContents) { + if (item.types.includes("text/html")) { + const blob = await item.getType("text/html"); + text.textHTML = await blob.text(); + } + if (item.types.includes("text/plain")) { + const blob = await item.getType("text/plain"); + text.textPlain = await blob.text(); + } + if (item.types.includes("image/png")) { + const blob = await item.getType("image/png"); + text.files = [new File([blob], "image.png", {type: "image/png", lastModified: Date.now()})]; + } } + } catch (e) { } return text; };