2012-05-09 76 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