当前位置: 首页> 汽车> 维修 > 中央农村工作会议精神要点_电子商务网址_哪个公司做网站推广最好_高端网站建设深圳

中央农村工作会议精神要点_电子商务网址_哪个公司做网站推广最好_高端网站建设深圳

时间:2025/8/26 15:25:49来源:https://blog.csdn.net/qq_44622894/article/details/147117370 浏览次数: 0次
中央农村工作会议精神要点_电子商务网址_哪个公司做网站推广最好_高端网站建设深圳

环境

window10
pnpm 8.15.4
node 8.15.4
vite 5.1.4
soybean admin: 1.0.0
native-ui: 2.38.0
小米电视 MIUI TV版本:MiTV OS 2.7.1886(稳定版)
飞视浏览器:https://www.fenxm.com/1220.html

在小米电视安装飞视浏览器可以去小红书查安装教程:苹果手机小米电视安装第三方 app 教程

描述

Soybean Admin 配置vite兼容低版本浏览器、安卓电视浏览器,解决了网页在小米电视的飞视浏览器访问页面空白的问题。

这是客户的特殊需求,需要支持后台监控系统在电视上访问。虽然后面还是单独开发了安卓app(安卓对焦点的支持真的非常友好),但是这个Soybean Admin 兼容一下低版本浏览器还是有必要分享出来的

实现

经过一番测试,在电脑Chrome浏览器正常访问,其它同是使用vite、vue3、vue2技术栈的都可以在电视正常访问,所以应该是打包配置问题。第一次用vite,网上的大致意思是vite默认支持高版本浏览器,如果你想兼容低版本浏览器,必须自己配合一些插件使用

第一步,安装依赖

pnpm i @vitejs/plugin-legacy terser -D
pnpm i @babel/core @babel/preset-env @babel/plugin-proposal-optional-chaining core-js -D

特别是这个 vitejs/plugin-legacy,一开始默认安装最新版本,导致开发环境都报错,后面查了很多,要看自己vite版本,再去对应 vitejs/plugin-legacy 版本

安装对应版本:

#版本一定对好,不然开发环境都会报错
pnpm i @vitejs/plugin-legacy@5.4.0 -D

第二步,兼容性配置

根目录下新增文件:babel.config.cjs

module.exports = {presets: [['@babel/preset-env',{targets: false, // 不指定目标浏览器,由 plugin-legacy 管理useBuiltIns: false, // 不处理 Polyfill,由 plugin-legacy 管理},],],plugins: ['@babel/plugin-proposal-optional-chaining', // 支持可选链操作符],
}

引入 vitejs/plugin-legacy 插件,位置:build/plugins/index.ts

import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
import VueDevtools from 'vite-plugin-vue-devtools';
import progress from 'vite-plugin-progress';
import legacy from '@vitejs/plugin-legacy';
import { setupElegantRouter } from './router';
import { setupUnocss } from './unocss';
import { setupUnplugin } from './unplugin';export function setupVitePlugins(viteEnv: Env.ImportMeta) {// PluginOption改为any,不然我的legacy会报错const plugins: any = [vue({script: {defineModel: true}}),legacy({targets: ['defaults', 'not IE 11', 'last 2 versions', '> 1%', 'Android >= 4.4'], // 需要兼容的浏览器版本additionalLegacyPolyfills: ['core-js/stable', 'regenerator-runtime/runtime'], // 兼容 async/awaitmodernPolyfills: true,// renderLegacyChunks: true,// polyfills: [//   // 列出需要添加的polyfill//   'es.symbol', 'es.promise', 'es.promise.finally',//   'es/map', 'es/set', 'es.array.filter',//   // ...其他polyfill// ]}),vueJsx(),VueDevtools(),setupElegantRouter(),setupUnocss(viteEnv),...setupUnplugin(viteEnv),progress(),];return plugins;
}

引入其它插件,位置:src/main.ts

import 'core-js/stable';
import 'regenerator-runtime/runtime'; // 如果你的代码使用了生成器(Generator),你也需要这个 Polyfill
import { createApp } from 'vue';
import './plugins/assets';
import { setupDayjs, setupIconifyOffline, setupLoading, setupNProgress, setupTvFocusable } from './plugins';
import { setupStore } from './store';
import { setupRouter } from './router';
import { setupI18n } from './locales';
import App from './App.vue';async function setupApp() {setupLoading();setupNProgress();setupIconifyOffline();setupDayjs();const app = createApp(App);setupStore(app);setupTvFocusable(app);await setupRouter(app);setupI18n(app);app.mount('#app');
}setupApp();

这里必须把前面两句放到最顶部!

如果你按照步骤做,重新部署了项目,在电视端访问还是页面空白,不妨清理一些浏览器缓存,或者再看看别的解决方案

关于 vite 使用plugin-legacy兼容低版本浏览器仍出现的问题的情况

vite创建的react项目如何兼容低版本安卓,低版本安卓不支持es6语法

vue3+vite兼容低版本的白屏问题详解(安卓7/ios11)

补充

最后补充,这里就算能访问到页面了,电视不像电脑,电视只能通过遥控器去交互,像是登录操作、点击打开新页面的操作,还是比较难搞的,建议还是跟客户聊好,如果电视端只要简单支持遥控器操作,可以看我下一篇文章:Soybean Admin 使用tv-focusable兼容电视TV端支持遥控器移动焦点。如果想要交互好、效果好、兼容性好,那建议还是安卓开发电视应用

关键字:中央农村工作会议精神要点_电子商务网址_哪个公司做网站推广最好_高端网站建设深圳

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: