首页 > 解决方案 > 如何在 Android WebView 中启用 jQuery 点击事件

问题描述

我见过许多类似的问题,但对我没有帮助,因此提出了这个问题。

我有一个使用 jQuery 的网站。我正在构建一个带有 webview 的 android 应用程序,它可以打开网站。当 webview 打开网站时,我遇到的问题是 webview 无法识别网站的任何点击事件。这是设置 webview 的代码。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    myWebView = (WebView) findViewById(R.id.webview);
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    myWebView.setClickable(true);
    myWebView.setWebChromeClient(new WebChromeClient());

    String localWebsite = "http://10.0.2.2:5000/test.html";
    myWebView.loadUrl(localWebsite);

}

以下是我的测试网站上的代码:

如何启用点击事件?

这部分$('.symptomImage').on('click ', function () { $('#symptomsDiv').css("display","none"); });不行!!

<script>

function test() { 
   $(document.body).prepend('Hello World'); // This Works
   $('#status').text("DidNotClick!!")       // This Works

  $('.symptomImage').on('click ', function () { // This doesn't work
      $('#symptomsDiv').css("display","none");
  });
}

test();

</script>

网站的 HTML 代码

<div id="symptomsDiv" class="text-center">
            <div class="symptomImage" style="display: inline-block !important">
                 <img src="images/symptoms/cold.png" class="img-rounded symptomImg center-block" alt="...">
            </div>
            <div class="symptomImage" style="display: inline-block !important">
                <img src="images/symptoms/cough.png" class="img-rounded symptomImg center-block" alt="...">
            </div>
            <div class="symptomImage" style="display: inline-block !important">
                <img src="images/symptoms/fever.png" class="img-rounded symptomImg center-block" alt="...">
            </div>
</div>

标签: javascriptandroidjquerywebviewandroid-webview

解决方案


用这段代码替换你在 android 中的 web 视图初始化并尝试。

它为我工作

        webView = (WebView) findViewById(R.id.webview);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setWebViewClient(new WebViewClient());
        String localWebsite = "http://10.0.2.2:5000/test.html";
        webView.loadUrl(url);
        webView.requestFocus();

否则,请检查您的网页代码是否正确实施。

对于其他网页网址,我上面的代码工作正常


推荐阅读