我正在开发基于Xterm.js的终端应用程序,该应用程序在UWP WebView中运行。一切正常,我可以使用Ctrl + V将任何文本粘贴到终端上-看起来它是由Xterm.js自动处理的。
但是我无法实现“粘贴”菜单选项。我尝试做类似的事情:
sources.map {
case source =>
replaces.foldLeft(source) {
case (acc, CodeAndReplacer(sub, rep)) => acc.replaceAll(sub, rep)
}
}
(根据https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand),但没有运气。什么都不会粘贴,并且调用返回空字符串。
有什么想法如何从UWP应用程序菜单实现粘贴?谢谢!
答案 0 :(得分:1)
这不是WebView的问题,因为我是从xterm.js的github issue找到的。
您可以考虑发布Terminal对象,例如将其附加到window对象,以便可以从外部公开访问它,然后使用_webView.InvokeScriptAsync("eval",new string[] { "window.term.paste("some string") "});
进行粘贴。
如果您不想公开终端对象,则可以将粘贴方法包装为公共函数,然后通过InvokeScriptAsync
对其进行调用。
最诚挚的问候。