在webView Android工作室中执行按钮单击



我需要帮助。我想在安卓工作室点击我的webView上的一个按钮。该按钮实际上是具有按钮id="的搜索按钮;"搜索图标遗留";在HTML代码中。我写了这个代码,但它什么也没做,只是在我的android浏览器中打开youtube,而不是点击搜索按钮。有人能帮我吗?这是我在MainActivity.java:中的代码

```
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView view = (WebView) findViewById(R.id.webView);
WebSettings faller = view.getSettings();
faller.setJavaScriptEnabled(true);
view.loadUrl("https://www.youtube.com/");
view.setWebViewClient(new WebViewClient());
view.loadUrl("javascript:(function(){document.getElementById('search-icon-legacy').click();})();");
}
}
```

要在webview中执行一些点击环境,如果你可以编辑web代码或知道点击按钮时调用的函数名,你可以这样做:

这是web上调用的JavaScript:

function androidFinish() {
        Android.finish();
    }

创建你的WebInterface,这个类将在你的webView上设置,以说明当函数JavaScript被调用时你想做什么。

class WebAppInterface(private val context: Context) {

@JavascriptInterface
fun finish() {
(context as Activity).finish()
}

}

在这里,名为finish的函数将完成作为上下文传递的活动。

然后在你的活动中,你实现了webView:

  1. 确保您在webView上启用JS,如下所示:
webview.settings.javaScriptEnabled = true
  1. 将您的webView配置到您的webInterface:
webview.addJavascriptInterface(WebAppInterface(this), "Android")

在这里,"Android"引用根调用函数,正如您在JS代码中看到的那样。然后".finish()"可以在WebInterface上调用的函数名中引用

android文档来源:https://developer.android.com/guide/webapps/webview#BindingJavaScript

最新更新