import BasePlatform from './BasePlatform';
import H5Platform from './H5Platform';


function parseQueryString(queryString) {
    // 如果以 ? 开头，先去掉 ?
    if (queryString.startsWith('?')) {
        queryString = queryString.substring(1);
    }

    const params = {};
    const pairs = queryString.split('&');

    for (const pair of pairs) {
        const [key, value] = pair.split('=');
        // 解码 URI 组件
        params[key] = decodeURIComponent(value);
    }

    return params;
}

class WebAppPlatform extends H5Platform {
    constructor() {
        super();
        this.code = 'WEB_APP';
        this.env = 'WEB_APP';
    }
    share({ title, desc, image, url }) {
        console.log(`H5分享：${title} - ${desc}`);
        // 调用浏览器原生分享（如果可用）
        if (navigator.share) {
            return navigator.share({ title, text: desc, url });
        }
        // 降级方案
        // alert(`请手动分享：${url}`);
    }

    downloadFile(url) {
        return new Promise((resolve, reject) => {
            try {
                // 创建一个隐藏的a标签
                const a = document.createElement('a');
                a.href = url;
                a.download = url.split('/').pop() || 'download'; // 使用URL中的文件名或默认名称
                a.style.display = 'none';
                document.body.appendChild(a);
                a.click(); // 触发下载
                document.body.removeChild(a); // 清理DOM
                resolve({ success: true });
            } catch (error) {
                console.error('下载失败:', error);
                // 降级方案，直接打开
                window.location.href = url;
                resolve({ success: false, error: error.message });
            }
        });
    }
    /**
     * 重写获取用户中心菜单列表，添加微信小程序特有菜单
     * @returns {Array} 菜单项数组
     */
    getUserMenuList() {
        // 获取基础菜单列表
        const baseMenuList = super.getUserMenuList();

        // 添加客服菜单项（仅微信小程序）
      

        // 将客服菜单插入到第二个位置
        return [...baseMenuList.slice(0, baseMenuList.length - 1),  ...baseMenuList.slice(baseMenuList.length - 1)];
    }
    getVersion() {
        return uni.getStorageSync('version') == '' ? '1.0.0' : uni.getStorageSync('version');
    }
}
export default WebAppPlatform;