diff --git a/assets/init.js b/assets/init.js index 553f404..7a016e3 100644 --- a/assets/init.js +++ b/assets/init.js @@ -1357,4 +1357,30 @@ let APP = { method: 'getPlatform' }) } +} + +/** + * Set clipboard text + * @param text {string} + * @returns {Promise} + * + * @since 1.3.4 + */ +function setClipboard(text) { + return sendMessage({ + method: 'setClipboard', + text: text + }) +} + +/** + * Get clipboard text + * @returns {Promise} + * + * @since 1.3.4 + */ +function getClipboard() { + return sendMessage({ + method: 'getClipboard' + }) } \ No newline at end of file diff --git a/lib/foundation/js_engine.dart b/lib/foundation/js_engine.dart index 3772491..791215b 100644 --- a/lib/foundation/js_engine.dart +++ b/lib/foundation/js_engine.dart @@ -163,6 +163,13 @@ class JsEngine with _JSEngineApi, JsUiApi, Init { return "${App.locale.languageCode}_${App.locale.countryCode}"; case "getPlatform": return Platform.operatingSystem; + case "setClipboard": + return Clipboard.setData(ClipboardData(text: message["text"])); + case "getClipboard": + return Future.sync(() async { + var res = await Clipboard.getData(Clipboard.kTextPlain); + return res?.text; + }); } } return null;