我有一个带有 webview 的应用程序,我一直在尝试从 webview 的正文中获取用户选择的文本。你会认为操作系统能够像 iOS 那样处理一些事情,但这是 Android 完全不足的众多地方之一。我已经探索了这个网站和谷歌,并没有发现任何可以帮助我的东西。幸运的是,我的应用程序有一个 javascript 界面,可以与我们加载到 webview 中的脚本进行通信。我想我可以使用 javascript 从 webview 中选择文本。在 chrome 中,我可以使用以下一些 javascript 来做到这一点:
window.getSelection.toString();
现在我有一个按钮,它调用我的 js 文件中的一个函数,它将运行上述命令并将其结果返回到我的 javascript 界面中的一个方法。该消息将祝我的 javascript 函数的结果。所以我选择文本,然后按此按钮。唯一的问题是我的 toast 消息返回以下消息:
javascript returned:
什么时候应该返回
javascript returned: <my selected text>
当我删除 '.toString(); 从我的javascript命令中选择文本并按下按钮我收到以下消息
javascript returned: undefined
为什么这不起作用?
这是我在上下文中的代码。这是被调用的hte javascript:
myNameSpace.getTextSelection = function()
{
var str;
if (window.getSelection){
str = window.getSelection().toString();
} else {
str = 'does not';
}
window.myJSHandler.getSelectedText(str);
};
这是它正在调用的java函数
public void getSelectedText(String text)
{
String str = "function called. it returned: " + text;
Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG).show();
}