/**
 * @description: 通过创建 a 标签触发文件下载
 * @param {string} url - 文件下载地址
 * @param {string} filename - 可选的文件名，如果不提供则使用浏览器默认行为
 * @return {void}
 */
export var downloadFile = function downloadFile(url, filename) {
  // 检测是否在移动 app 环境（Capacitor）
  var isApp = window.navigator.userAgent.includes('Capacitor');

  // 在 app 环境中，优先使用 window.open 在新窗口打开
  // 这样可以触发系统的下载行为，而不是在当前页面导航
  if (isApp) {
    window.open(url, '_blank');
    return;
  }

  // 在浏览器环境中，使用传统的 a 标签方式
  var link = document.createElement('a');
  link.href = url;
  link.target = '_blank'; // 在新标签页打开，避免替换当前页面

  if (filename) {
    link.download = filename;
  }
  link.style.display = 'none';
  document.body.appendChild(link);
  link.click();

  // 延迟移除，确保下载已开始
  setTimeout(function () {
    document.body.removeChild(link);
  }, 100);
};