🎨 移动端复制后长按块粘贴无效 Fix https://github.com/siyuan-note/insider/issues/1091

This commit is contained in:
Liang Ding 2022-10-07 11:00:52 +08:00
parent 34e4697878
commit 21b76c1a72
No known key found for this signature in database
GPG Key ID: 136F30F901A2231D
4 changed files with 13 additions and 4 deletions

View File

@ -19,7 +19,7 @@ import {transaction, updateTransaction} from "../protyle/wysiwyg/transaction";
import {openMenu} from "./commonMenuItem";
import {fetchPost} from "../util/fetch";
import {Constants} from "../constants";
import {writeText} from "../protyle/util/compatibility";
import {readText, writeText} from "../protyle/util/compatibility";
import {preventScroll} from "../protyle/scroll/preventScroll";
import {onGet} from "../protyle/util/onGet";
import {getAllModels} from "../layout/getAll";
@ -347,7 +347,7 @@ export const contentMenu = (protyle: IProtyle, nodeElement: Element) => {
document.execCommand("paste");
} else {
try {
const clipText = await navigator.clipboard.readText();
const clipText = await readText();
pasteText(protyle, clipText, nodeElement);
} catch (e) {
console.log(e);
@ -370,7 +370,7 @@ export const contentMenu = (protyle: IProtyle, nodeElement: Element) => {
async click() {
try {
// * _ [ ] ! \ ` < > & ~ { } ( ) = # $ ^ |
let clipText = await navigator.clipboard.readText();
let clipText = await readText();
// https://github.com/siyuan-note/siyuan/issues/5446
// A\B\C\D\
// E

View File

@ -2,6 +2,7 @@ import {ToolbarItem} from "./ToolbarItem";
import {linkMenu} from "../../menus/protyle";
import {hasClosestBlock, hasClosestByAttribute} from "../util/hasClosest";
import {focusByRange, focusByWbr} from "../util/selection";
import {readText} from "../util/compatibility";
export class Link extends ToolbarItem {
public element: HTMLElement;
@ -27,7 +28,7 @@ export class Link extends ToolbarItem {
const rangeString = range.toString().trim();
let dataHref = "";
try {
const clipText = await navigator.clipboard.readText();
const clipText = await readText();
// 选中链接时需忽略剪切板内容 https://ld246.com/article/1643035329737
if (protyle.lute.IsValidLinkDest(rangeString)) {
dataHref = rangeString;

View File

@ -13,6 +13,13 @@ export const openByMobile = (uri: string) => {
}
};
export const readText = async () => {
if ("android" === window.siyuan.config.system.container && window.JSAndroid) {
return window.JSAndroid.readClipboard();
}
return navigator.clipboard.readText();
}
export const writeText = async (text: string) => {
let range: Range;
if (getSelection().rangeCount > 0) {

View File

@ -34,6 +34,7 @@ interface Window {
changeStatusBarColor(color: string, mode: number): void
writeClipboard(text: string): void
writeImageClipboard(uri: string): void
readClipboard(): string
}
goBack(): void