问题域:基于 Android WebView 的 ePub 格式阅读器 --
我们需要可通过 JavaScript 方法访问的文本突出显示(即打开、关闭、保存并通过电子邮件发送等)
如果我的理解有误,请知情者指正:
在 WebView 上选择文本时 --
基本上我们得到了一个 TextView 覆盖层(WebTextView),除了视觉上之外,它绝不附加到底层 html(顺便说一句,将其全部排列并使其无缝,做得很好),我们在其上执行 TextSelectionActionMode 并提供 ClipboardManager与结果...为了明确这一点,在此股票过程中的任何时候实际上都没有选择带有 WebView 的实际 HTML,这就是 JavaScript 无法访问操作结果的原因。
因此,为了使这种行为在 3.1+ 中发挥作用,我有一些可能的计划来在 WebView 上实现我自己的选择 - 这是我想知道我是否无法看到角落之外的部分:) - -
1)捕获启动选择模式的长按的MOTION_DOWN,覆盖内置的TextSelection ActionMode(以提供客户品牌——我发现这样做的方式太黑客了,很伤人)观察拖动,捕获MOTION_UP位置,映射这些坐标到
WebView,并根据坐标进行选择(同时将文本与 ClipboardManager 捕获的文本进行比较)
2)创建我自己的“WebTextView”(整个工作哈哈)并且不那么黑客地创建我自己的ActionMode并执行上述所有操作。
3) 使用股票选择过程生成的 MotionEvents 并以某种方式覆盖由此触发的股票 TextSelection ActionMode。
这些是我看到的选项,希望是我的接近和沮丧
这让我对一个更简单的东西视而不见(将其视为内置)
解决方案或两个。
感谢你的宝贵时间。
我在 2.2 - 4.0.3 中可以正常工作。我使用了 javascript 接口并将所有触摸传递给它。该解决方案似乎工作得很好,我已经在 github 上放了一个示例项目。 github 项目在资产文件夹中包含必要的 js,以及加载测试页面并实现处理选择的所有必要方法的测试页面和 Web 视图。 github项目的链接是https://github.com/btate/BTAndroidWebViewSelection。努力吧。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)