Skip to content

Wc copy android#90

Open
NikitaShevchik wants to merge 319 commits into
mainfrom
wc-copy-android
Open

Wc copy android#90
NikitaShevchik wants to merge 319 commits into
mainfrom
wc-copy-android

Conversation

@NikitaShevchik

Copy link
Copy Markdown
Collaborator

No description provided.

azbang and others added 27 commits March 7, 2026 15:23
chore(example): updated `near-connect` package version
Add signInWithFunctionCallKey for intear wallet
…or-most-wallets

feat: Bring support for more signIn flows for most of the wallets
fix: Fixed the default NEAR Connect icon in the footer
@NikitaShevchik
NikitaShevchik requested a review from azbang April 16, 2026 13:21
@NikitaShevchik

Copy link
Copy Markdown
Collaborator Author

Проблема:

WalletConnect "Copy Link" вызывает navigator.clipboard.writeText(uri). Но этот код работает внутри sandboxed iframe:

<iframe sandbox="allow-scripts" allow="clipboard-write;"> На iOS — Safari разрешает clipboard внутри sandbox. Работает.

На Android — Chrome не даёт navigator.clipboard в iframe без allow-same-origin. Тихо падает. Кнопка ничего не делает.

Что я сделал:
В code.ts (код который запускается внутри iframe) — подменяю navigator.clipboard:

navigator.clipboard = {
writeText(text) {
// Вместо реального clipboard — шлёт запрос наружу
return window.selector.call("clipboard.writeText", { text });
}
};
Теперь когда WalletConnect modal вызывает navigator.clipboard.writeText() — он попадает в наш полифилл, который через postMessage просит parent страницу скопировать текст.

В executor.ts (код parent страницы, обрабатывает сообщения из iframe) — ловлю запрос:

if (event.data.method === "clipboard.writeText") {
// Проверяю что кошельку разрешён clipboard
this.assertPermissions(iframe, "clipboardWrite", event);
// Реальный clipboard.writeText на основной странице — тут Android работает
await navigator.clipboard.writeText(event.data.params.text);
}
Parent страница — не sandboxed, navigator.clipboard работает нормально.

Будет ли работать? Да, потому что:

WalletConnect modal не знает что clipboard подменён — для него API тот же
Parent страница имеет полный доступ к clipboard
Пермишен clipboardWrite: true у wallet-connect уже есть в манифесте
На iOS ничего не сломается — полифилл перехватит и тоже сработает через parent

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.