javascript - Android 3.x 仅限 WebView 文本选择 + JavaScript

标签 javascript android webview android-3.0-honeycomb textselection

问题域:基于 Android WebView 的 ePub 格式阅读器 --

我们需要可通过 JavaScript 方法访问的文本高亮显示(即打开 em、关闭 em、保存它们并通过电子邮件发送它们等)

有知道的 friend ,如果我说错了请指正: 在 WebView 上选择文本时——

基本上我们得到了一个 TextView 覆盖层 (WebTextView),它除了视觉上没有附加到底层 html 上(顺便说一句,把它全部排列起来并使其无缝,顺便说一句,这是一个很好的工作),我们在其上执行 TextSelectionActionMode 和ClipboardManager 随结果一起提供......为了清楚起见,在此库存过程中,实际上并未在任何时候选择带有 WebView 的实际 HTML,这就是 JavaScript 无法访问操作结果的原因。

因此,为了使这种行为在 3.1+ 中起作用,我有一些可能的计划,以便在 WebView 上实现我自己的选择——这是我想知道我是否无法从 Angular 落里看到的部分:) --

1) 捕获启动选择模式的长按的 MOTION_DOWN,覆盖内置的 TextSelection ActionMode(以提供客户品牌 - 我发现这样做的方式太黑了它伤害)观看拖动,捕获 MOTION_UP 位置,将这些坐标映射到 WebView,并根据坐标进行选择(同时将文本与 ClipboardManager 捕获的文本进行比较)

2) 创建我自己的“WebTextView”(整个工作大声笑)并且不那么 hackishly 创建我自己的 ActionMode 并执行上述所有操作。

3) 使用股票选择过程生成的 MotionEvents 并以某种方式覆盖由此触发的股票 TextSelection ActionMode。

这些是我看到的选项,希望是我的接近和沮丧 这让我对一个更简单的东西视而不见(读作内置的) 解决方案或两个。

再次感谢您的宝贵时间。

最佳答案

我在 2.2 - 4.0.3 中得到了这个工作。我使用了一个 javascript 界面并将所有接触传递给它。该解决方案似乎工作得很好,我已经在 github 上放了一个示例项目。 github 项目在 assets 文件夹中包含必要的 js,以及一个测试页面和加载测试页面并实现所有必要方法来处理选择的 Web View 。 github项目的链接是https://github.com/btate/BTAndroidWebViewSelection .坚持下去。

关于javascript - Android 3.x 仅限 WebView 文本选择 + JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6948447/

相关文章:

javascript - 有没有办法在变量名中使用变量?

php - 在表单中创建黑名单过滤器以避免某些单词

javascript - 基于配置值的 Webpack 条件构建

android - MultiDexApplication 的使用导致 Application 类的 Robolectric 测试中断

iphone - 是否有适用于 Android 或 iPhone 的图像效果库(例如 lomo)?

android - RecyclerView onItemClick 监听器

java - 从静态 fragment 调用 webview 中的 JS 函数

ios - 为什么我的 WKWebView 的 Storyboard表示看起来与模拟器上运行的不同?

java - WebView 可能不支持在 StartApp 的其他线程上使用

javascript - 在Sap.m.Select中bindAggregation之后使用insertItem