【问题标题】:WYSIWYG in Android webviewAndroid webview 中的所见即所得
【发布时间】:2013-06-14 17:45:24
【问题描述】:

我一直在尝试从我的应用程序内部向我的用户提供所见即所得的 HTML 编辑器。它不必是花哨的所见即所得。我只需要粗体、斜体、下划线、图像、链接和一些基本格式(字体大小、颜色、对齐方式)等基本功能。应该够了。

完美的解决方案是开源库,但我一直找不到。所以我在谷歌上搜索了一个可以在 Android 上运行的基于网络的编辑器。我找到了Sceditor。当我启动我的 Android 浏览器(Chrome beta)时,这个编辑器效果很好。它似乎也可以从我的 webview 工作(见截图),但它没有。

一旦我从应用程序中运行编辑器,大多数功能就会停止工作。光标随机跳动,我无法再编辑现有文本,并且发生了更多奇怪的事情。基本上,它只是不起作用。

问题:我怎样才能让它正常工作?

提前非常感谢!

【问题讨论】:

  • “完美的解决方案是开源库,但我一直找不到”——这是我正在开发的库:github.com/commonsguy/cwac-richedit
  • 哇!这看起来棒极了。我将立即尝试实现这一点。请添加它作为答案,因为这对于这一刻来说可能已经足够了 :) 谢谢 CW!

标签: android android-webview wysiwyg webchromeclient


【解决方案1】:

EditText 完全能够显示富文本。只是用户——甚至开发人员——没有简单的方法来真正控制这种格式。因此,我一直在使用a library to deal with this,提供RichEditText 替代EditText。这仍然是一项正在进行的工作,我真的需要在不远的将来花更多的时间。

【讨论】:

  • 这以 Android 原生的方式满足了我 80% 的需求。谢谢!快速提问,在我将此标记为已接受之前。它不能输出 HTML,可以吗?
  • @VicV:您可以使用Html 辅助类及其toHtml() 方法将Spannable 转换为HTML。
  • 完美!这会让我走!还有一些小故障,但我会密切关注github。谢啦!当我问这个问题时,答案比我预期的要好得多!
  • (我知道我应该为此提出一个新问题,但我宁愿省去麻烦,抱歉!:))我似乎无法让我的 HTML 显示到富编辑文本。我有一个带有 HTML 实体的字符串,Html.fromHtml() 只是结果:i.imgur.com/FrXXmZX.png
  • @VicV:如果这看起来像真正的 HTML 字符串,那就没有在RichEditText 工作的祈祷。 Html.fromHtml() 处理几十个标签,仅此而已:commonsware.com/blog/2010/05/26/… RichEditText 用于 HTML 的这个子集,而不是用于编辑从 Interwebs 中挑选出来的任意 HTML。
【解决方案2】:

Andoird API 的Webview 支持 HTML 的内容可编辑。

webSettings.setJavaScriptEnabled(true)
webSettings.setDomStorageEnabled(true);
webSettings.setLightTouchEnabled(true);

启用 webview 可编辑然后使用

 webview.loadurl("javascript:....")

如:webView.loadUrl("javascript:document.execCommand('bold', false, null);"); 控制编辑。

您可以在 Android 上看到我的应用程序的 WYSIWYG 编辑,WYSIWYG editing of YodaNote 0.4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-21
    • 2011-07-18
    • 1970-01-01
    • 2011-01-12
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多