Canvas js 导出启用无法在 android 设备上运行
Canvas js export enable not working on android device
我正在研究 CANVASjS
并构建一个在图表上显示数据的示例应用程序。我已启用 export
以在 .png
和 .jpeg
中保存图表并打印。在 ripple emulator
上部署它时,导出工作正常,但是当我在 android device
上部署它时,它不起作用。下面是我启用导出的代码部分。
var chart = new CanvasJS.Chart("container", {
zoomEnabled: true,
zoomType: "xy",
animationEnabled: true,
animationDuration: 2000,
exportEnabled: true,
// all other chart code
});
更新 1:
function drawChart(data)
{
var chart = new CanvasJS.Chart("container", {
zoomEnabled: true,
zoomType: "xy",
animationEnabled: true,
animationDuration: 2000,
exportEnabled: true,
exportFileName: "Column Chart",
title: {
text: "Energy vs Date Time"
},
axisY: {
title: "EnergykWh",
interlacedColor: "#F8F1E4",
tickLength: 10,
suffix: "k",
},
legend: {
cursor: "pointer",
itemclick: function (e) {
if (typeof (e.dataSeries.visible) === "undefined" || e.dataSeries.visible) {
e.dataSeries.visible = false;
} else {
e.dataSeries.visible = true;
}
e.chart.render();
}
},
dataPointWidth: 20,
data: [{
//legendText: "EngergykWh",
showInLegend: true,
type: 'column',
//xValueType: "dateTime",
xValueFormatString: "DD/MMM/YYYY h:mm TT",
//xValueFormatString: "YYYY-MM-DD hh:mm:ss TT",
showInLegend: true,
name: "series1",
legendText: "EnergykWh",
dataPoints: data
}]
});
chart.render();
}
更新二:
下面是信息图片和 link 的 OS 版本的 android 设备,我已经尝试过
我不知道它的主要问题是什么。
任何帮助将不胜感激。
当您点击下载选项时,canvasJS 使用 HTML5 下载属性触发下载,这在支持它的浏览器中运行良好。
然而,当您在 Cordova 应用程序中点击相同的 link 时,其 运行 所在的网络视图不知道如何处理文件下载。因此什么也没有发生。
您似乎可以通过向应用添加一些自定义 Java 来自行启用此功能。不幸的是,我不是 Android Java 开发人员,但这个问题可能会对您有所帮助 - Download File inside WebView
您创建的 webview 中没有下载管理器,因此您需要手动处理下载功能。有两种方法可以从 webview 下载文件。
1.Using Android 下载管理器
2.Using 从 webview 打开的网络浏览器(内部使用 Android 下载管理器)
所需权限包括WRITE_EXTERNAL_STORAGE
然后为 webview 设置一个下载监听器。
webView.setDownloadListener(new DownloadListener(){
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength){
//for downloading directly through download manager
Request request = new Request(Uri.parse(url));
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "download");
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
dm.enqueue(request);
}
});
此 plugin 应该可以帮助您将图像另存为下载文件。
前提是你的 canvas 是 "myCanvas":
Canvas2Image.saveAsPNG(myCanvas, width, height)
或
Canvas2Image.saveAsJPEG(myCanvas, width, height)
我正在研究 CANVASjS
并构建一个在图表上显示数据的示例应用程序。我已启用 export
以在 .png
和 .jpeg
中保存图表并打印。在 ripple emulator
上部署它时,导出工作正常,但是当我在 android device
上部署它时,它不起作用。下面是我启用导出的代码部分。
var chart = new CanvasJS.Chart("container", {
zoomEnabled: true,
zoomType: "xy",
animationEnabled: true,
animationDuration: 2000,
exportEnabled: true,
// all other chart code
});
更新 1:
function drawChart(data)
{
var chart = new CanvasJS.Chart("container", {
zoomEnabled: true,
zoomType: "xy",
animationEnabled: true,
animationDuration: 2000,
exportEnabled: true,
exportFileName: "Column Chart",
title: {
text: "Energy vs Date Time"
},
axisY: {
title: "EnergykWh",
interlacedColor: "#F8F1E4",
tickLength: 10,
suffix: "k",
},
legend: {
cursor: "pointer",
itemclick: function (e) {
if (typeof (e.dataSeries.visible) === "undefined" || e.dataSeries.visible) {
e.dataSeries.visible = false;
} else {
e.dataSeries.visible = true;
}
e.chart.render();
}
},
dataPointWidth: 20,
data: [{
//legendText: "EngergykWh",
showInLegend: true,
type: 'column',
//xValueType: "dateTime",
xValueFormatString: "DD/MMM/YYYY h:mm TT",
//xValueFormatString: "YYYY-MM-DD hh:mm:ss TT",
showInLegend: true,
name: "series1",
legendText: "EnergykWh",
dataPoints: data
}]
});
chart.render();
}
更新二:
下面是信息图片和 link 的 OS 版本的 android 设备,我已经尝试过
我不知道它的主要问题是什么。 任何帮助将不胜感激。
当您点击下载选项时,canvasJS 使用 HTML5 下载属性触发下载,这在支持它的浏览器中运行良好。
然而,当您在 Cordova 应用程序中点击相同的 link 时,其 运行 所在的网络视图不知道如何处理文件下载。因此什么也没有发生。
您似乎可以通过向应用添加一些自定义 Java 来自行启用此功能。不幸的是,我不是 Android Java 开发人员,但这个问题可能会对您有所帮助 - Download File inside WebView
您创建的 webview 中没有下载管理器,因此您需要手动处理下载功能。有两种方法可以从 webview 下载文件。
1.Using Android 下载管理器
2.Using 从 webview 打开的网络浏览器(内部使用 Android 下载管理器)
所需权限包括WRITE_EXTERNAL_STORAGE
然后为 webview 设置一个下载监听器。
webView.setDownloadListener(new DownloadListener(){
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength){
//for downloading directly through download manager
Request request = new Request(Uri.parse(url));
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "download");
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
dm.enqueue(request);
}
});
此 plugin 应该可以帮助您将图像另存为下载文件。
前提是你的 canvas 是 "myCanvas":
Canvas2Image.saveAsPNG(myCanvas, width, height)
或
Canvas2Image.saveAsJPEG(myCanvas, width, height)