在IDEA写好HTML文件,在HTML引入
<!-- 引入 jquery.js -->
<script src="https://cdn.staticfile.org/jquery/2.2.4/jquery.min.js"></script>
<!-- 引入 echarts.js -->
<script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
然后运行后能够在网页显示出图表。
但是在将其放在android studio里
结果是在app里没有显示出图表,而且显示
"Access to XMLHttpRequest at 'file:///android_asset/web/graph.json' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, https.", source: http://code.jquery.com/jquery-1.11.0.min.js (4)
解决方法是在webView.loadUrl前加入如下内容:
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
} else {
try {
Class<?> clazz = webView.getSettings().getClass();
Method method = clazz.getMethod(
"setAllowUniversalAccessFromFileURLs", boolean.class);
if (method != null) {
method.invoke(webView.getSettings(), true);
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
webView.loadUrl("file:///android_asset/web/graph.html");
点击运行,就可以发现问题已经解决了 。