【问题标题】:How to enable jQuery click events in Android WebView如何在 Android WebView 中启用 jQuery 点击事件
【发布时间】:2020-04-03 06:04:15
【问题描述】:

我看到很多类似的问题对我没有帮助,因此提出了这个问题。

我有一个使用 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>

【问题讨论】:

  • @RakeshKumar,在您的回答中,您在 html 元素内使用 onclick 属性,该属性有效,而我想使用 $('.symptomImage').on('click ', function () { }),这似乎在 webview 中不起作用。跨度>

标签: javascript android jquery webview android-webview


【解决方案1】:

用此代码替换您在 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();

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

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

【讨论】:

  • 点击功能有效吗? $('.symptomImage').on('click ', function () { ('#symptomsDiv').css("display","none"); });这对我不起作用!!
  • 本网站适用于 chrome 桌面和设备模拟器中的 chrome。
  • 发生这种情况是因为您没有正确启用 webview 中的 javascript
猜你喜欢
  • 2015-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-12
  • 2012-05-17
  • 2012-09-24
  • 1970-01-01
相关资源
最近更新 更多