2013-04-29 47 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