Highcharts图例选择在Android WebView中双触发

Highcharts Legend Selection double fires in Android WebView

本文关键字:WebView Android 选择 Highcharts      更新时间:2023-09-26

我有一个饼图,条形图和面积图在我的Android应用程序中使用Highcharts通过WebView。它们都有图例,可以根据用户需要减少序列。我注意到在图例上选择一个物品是双重射击。因此,我无法从图表中删除数据点/系列,因为它被自动删除并添加回来。请注意,我使用Android 4.1和HighchartsJS 3.0.1。

作为测试,我指出我的WebView直接从Highcharts API演示站点加载,我能够重现这个问题。有没有人有一个快速解决这个问题,通过一些javascript代码,阻止这个"鬼"点击?

如果你想通过Android应用程序重现这个问题,这是我使用的代码:

DashboardActivity.java

public class DashboardActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_dashboard);
       WebView webView = (WebView)findViewById(R.id.dashboard_webview);
       webView.getSettings().setJavaScriptEnabled(true);
       webView.loadUrl("http://www.highcharts.com/demo/pie-legend");
    }
}

activity_dashboard.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".DashboardActivity" >
<WebView 
    android:id="@+id/dashboard_webview"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent" />
</RelativeLayout>

我可以通过编辑highcharts源代码来解决这个问题。在第9944行,修改

.on('click', function (event) {

.on('touchend', function (event) {