2012-05-09 35 views
0

我有一个带有webview的应用程序,我一直试图从webview正文中获取用户选择的文本。你会认为操作系统能够处理像iOS那样的操作系统,但是这是Android完全不足的地方之一。我探讨了这个网站和谷歌,并没有发现任何可以帮助我的东西。我的应用幸运地拥有一个JavaScript界面​​,与我们加载到webview中的脚本进行通信。我以为我可以使用JavaScript从webview中选择文本。在Chrome中我可以用JavaScript以下位做到这一点:Android:window.getSelection()在webview中不起作用

window.getSelection.toString(); 

现在我有一个按钮,这在我的js文件调用一个函数,将运行上面的命令,并在我的javascript它的结果返回给的方法接口。该消息将烘烤我的javascript功能的结果。所以我选择文本,然后按此按钮。唯一的问题是,我的烤面包的消息返回以下消息:

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(); 
     } 

回答

0

由于文本选择的是Android发生在一个单独的类WebTextView所以如果我们tryies得到使用JavaScript方法选择的字 -

var range = window.getSelection(); 

但该函数返回什么,如果你想选择的话,你可以在使用的情况下进行反思,如果你想要的我将在稍后添加该代码。

+0

拉维,请添加此反射 – 2016-05-05 12:24:41