2013-04-29 90 views
0

我爲android編寫了一個應用程序。有一個Webview,我想在文件上點擊我應用程序中的按鈕後,將文本放到網站上的焦點TextArea中。我還沒有找到任何解決方案在谷歌。android:在Webview中將文本放入文本框

重要的是要放入文本中,它不是登錄視圖,其中數據可以通過POST方法傳輸,用戶應該能夠看到輸入。

我希望你能幫助我。

謝謝!

回答

0

公共無效addJavascriptInterface(Object對象,字符串名稱) 在API級別1 噴射提供的Java對象插入此web視圖。該對象使用提供的名稱注入主框架的JavaScript上下文中。這允許從JavaScript訪問Java對象的方法。對於定位到API級別JELLY_BEAN_MR1及更高版本的應用程序,只能使用JavaScript訪問用JavaScriptInterface註釋的公共方法。對於針對API級別JELLY_BEAN或更低級別的應用程序,可以訪問所有公共方法(包括繼承的方法),有關含義,請參閱下面的重要安全說明。 請注意,注入的對象將不會出現在JavaScript中,直到頁面下一次(重新)加載。例如:

class JsObject { 
@JavascriptInterface 
public String toString() { return "injectedObject"; } 
} 
webView.addJavascriptInterface(new JsObject(), "injectedObject"); 
webView.loadData("", "text/html", null); 
webView.loadUrl("javascript:alert(injectedObject.toString())"); 

重要:

這種方法可以被用於允許JavaScript控制主機應用程序。這是一個強大的功能,但也爲面向API級別JELLY_BEAN或更低級別的應用程序提供安全風險,因爲JavaScript可以使用反射來訪問注入對象的公共字段。在包含不可信內容的WebView中使用此方法可能允許攻擊者以非預期的方式操縱主機應用程序,並使用主機應用程序的權限執行Java代碼。在可能包含不可信內容的WebView中使用此方法時要格外小心。 JavaScript與此WebView的專用後臺線程上的Java對象交互。因此需要注意保持線程安全。 Java對象的字段不可訪問。 參數 將Java對象注入到此WebView的JavaScript上下文中。空值被忽略。 名稱用於暴露JavaScript中的對象的名稱

我正在使用手機,抱歉格式化。這是官方頁面android的引用。 所以: 如果是你的頁面:輸入的

  1. 設置ID,例如文本(例如:<輸入ID = 「文本」 ...)
  2. 添加文件結尾的這段代碼: (b){document.getElementById(「text(here is yur ID)」)。value = b;}; function b(a){document.getElementById(「text(here is your));}}}}}}}}}}}}}}}} ID)「)。value + = a;} </script >

  3. 要更改文本,請使用以下代碼:

    String str =「any string」; webview。使用loadURL( 「JavaScript的:一(\」 「+ STR +」 \ 「)」);

  4. 要在末尾添加文本:

    字符串str = 「任意字符串」; webview.loadUrl(「javascript:b(\」「+ str +」\「)」);

+0

很酷,謝謝。但該網站不是我的。不能改變網站輸入文字嗎? – user2332887 2013-04-29 18:53:42

+0

是的,你可以。但你能給我代碼或網址嗎?您還可以獲取所有輸入並檢查,編輯。 – barwnikk 2013-04-29 20:58:26

+0

它是一個數學論壇(德語),我想在屏幕頂部有一個水平滾動條(帶圖像按鈕),用戶可以在其中輸入mathematik運算符(+,*,-...)而不更改爲鍵盤的第二部分。我使用android.webkit.WebView客戶端。該網站是[www.gute-mathe-fragen.de](http://www.gute-mathe-fragen.de)。因爲字符也是鍵盤上的按鈕,也許我可以模擬鍵盤按下?什麼意思與獲得輸入和檢查,什麼編輯。 – user2332887 2013-04-30 15:19:25