我为android编写了一个应用程序。有一个Webview,我想在点击我的应用程序按钮后将Text放入网站上的焦点TextArea。我没有在谷歌找到任何解决方案。
重要的是放入文本,它不是登录视图,其中数据可以通过POST方法传输,用户应该能够看到输入。
我希望你能帮助我。
谢谢!
答案 0 :(得分:0)
public void addJavascriptInterface(Object object,String name) 在API级别1中添加 将提供的Java对象注入此WebView。使用提供的名称将对象注入主框架的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引用的。 所以: 如果是你的页面:
添加文档结尾的代码:
< script> function a(b){document.getElementById(“text(here is yur ID)”)。value = b;}; function b(a){document.getElementById(“text(这是你的) ID)“)值+ =一个;}< /脚本>
要更改文字,请使用以下代码:
String str =“any string”; webview.loadUrl( “JavaScript的:一(\” “+ STR +” \ “)”);
最后添加文字:
String str =“any string”; webview.loadUrl( “JavaScript的:B(\” “+ STR +” \ “)”);