我有一個帶有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();
}
拉維,請添加此反射 – 2016-05-05 12:24:41