Просмотр исходного кода

REVIEWED: `GetClipboardText()` on `PLATFORM_WEB`

pull/2853/head
Ray 2 лет назад
Родитель
Сommit
ce8000ee7e
1 измененных файлов: 15 добавлений и 1 удалений
  1. +15
    -1
      src/rcore.c

+ 15
- 1
src/rcore.c Просмотреть файл

@ -1945,7 +1945,21 @@ const char *GetClipboardText(void)
return glfwGetClipboardString(CORE.Window.handle);
#endif
#if defined(PLATFORM_WEB)
return emscripten_run_script_string("navigator.clipboard.readText()");
// Accessing clipboard data from browser is tricky due to security reasons
// The method to use is navigator.clipboard.readText() but this is an asynchronous method
// that will return at some moment after the function is called with the required data
emscripten_run_script_string("navigator.clipboard.readText() \
.then(text => { document.getElementById('clipboard').innerText = text; console.log('Pasted content: ', text); }) \
.catch(err => { console.error('Failed to read clipboard contents: ', err); });"
);
// The main issue is getting that data, one approach could be using ASYNCIFY and wait
// for the data but it requires adding Asyncify emscripten library on compilation
// Another approach could be just copy the data in a HTML text field and try to retrieve it
// later on if available... and clean it for future accesses
return NULL;
#endif
return NULL;
}

Загрузка…
Отмена
Сохранить