【问题标题】:WebView Text SelectionWebView 文本选择
【发布时间】:2012-07-07 02:57:26
【问题描述】:

我想实现这样的目标——文本选择加上自定义操作..

http://www.youtube.com/watch?feature=player_embedded&v=iwmG43D0vD4

我已经对此主题进行了充分的研究,并得出结论认为 webview 文本选择和覆盖它的功能是不可能的..

似乎 webview 的功能至少在文本操作的情况下非常有限。

我通过访问 webview 的私有 nativeGetSelection 方法取得了不错的成功(我能够获取选定的文本).. 但我仍然无法取消默认对话框.. 并且使用私有方法似乎不是一个安全的操作太..

我正要放弃做那个项目的想法..然后我发现默认的网络浏览器提供了良好的文本选择功能,并进一步提供了自定义快速操作来操作文本..在这一点上我真的很困惑。 ...

任何人都可以......凭借他们所有的专业知识......指出如何实现这种行为......?

google docs 应用程序使用什么视图来实现该行为..?

【问题讨论】:

  • 嘿@Sakti,你是如何设法在 webView 中获取所选文本的?
  • 使用此视图github.com/btate/BTAndroidWebViewSelection。它对我有用.. .. 它来自下面的答案.. 您可以构建这个项目以查看它的工作..
  • 其实我只需要选中的文字,没有别的。您是如何为此目的使用 nativeGetSelection 方法的?它在 Android 4.1 中仍然可用吗?
  • 我使用“java 反射”访问了私有方法。在模拟器中它运行良好。但在设备中它运行在一个上,而在另一个上它给出了错误。顺便说一句,私有方法如有更改,恕不另行通知。在 4.1 中,我看不到该方法,我想它不再是 .. 您可以使用下面所述的方法来选择文本,因为它使用 javascript 来选择文本并阻止默认操作..

标签: android webview


【解决方案1】:

我在 2.2 - 4.0.3 中有类似的工作。我使用了一个 javascript 界面并将所有内容传递给它。当然,要做到这一点,您需要对 Web 内容进行足够的控制以包含 javascript 文件。我在生产中的应用程序中有这个解决方案,我在 github 上放了一个示例项目。 github 项目在 assets 文件夹中包含必要的 js,以及一个测试页面和 Web 视图,用于加载测试页面并实现所有必要的方法来处理选择。 github项目的链接是https://github.com/btate/BTAndroidWebViewSelection。试试看。

【讨论】:

  • 嘿,谢谢 btate .. 我相信这个解决方案最适合我的用例 .. ;)
  • @btate 这个 github 项目很棒,但是它不能在平板电脑上使用 ON 版本 - 4.1.2。
  • 各位有没有人用操作系统版本 4.1.2 测试过这个项目?对我来说它不起作用。
  • 如何在 webview 中选择文本时打开自定义对话框?
猜你喜欢
  • 2010-11-09
  • 2013-06-08
  • 2014-06-10
  • 1970-01-01
  • 2021-02-09
  • 2021-04-20
  • 2011-10-20
  • 2016-07-05
  • 2011-08-28
相关资源
最近更新 更多