uni-app项目(V3)无法运行web端加密的UTS插件并且插件web目录下的ts、js文件不会加密
uni-app项目(V3)无法运行web端加密的UTS插件并且插件web目录下的ts、js文件不会加密
| 项目 | 值 |
|---|---|
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | 10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 4.87 |
| 浏览器平台 | Chrome |
| 浏览器版本 | 144 |
| 项目创建方式 | HBuilderX |
产品分类: uniapp/H5
bug描述:
加密版运行报一下错误,源码版可以正常运行
10:58:34.885 [plugin:vite:esbuild] Transform failed with 1 error:
10:58:34.885 F:/git/uniapp/testV3UniappPlugin/uni_modules/xwq-tts-speaker/utssdk/web/index.uts:1:0: ERROR: Unexpected “�”
10:58:34.886 at uni_modules/xwq-tts-speaker/utssdk/web/index.uts:1:0
10:58:34.886
10:58:34.886 Unexpected “�”
10:58:34.886 1 | �k�z�z�F���QSw,؆�����D�R�x�Ց�P�[9>��t���^ӭ5GGI1?#A��<N�4�����.m�’
10:58:34.886 | ^
10:58:34.886 2 | [��x�g�[~ąZ���eY��&�6�[�>
示例代码:
<template>
<view>
<view class="area">
<textarea @input="iptHandle"
style="width: 100%;border: 1px solid #ccc;padding: 15px;background-color: #f2f2f2;margin-bottom: 15px;" />
<button type="default" @click="start">文本转语音播报</button>
<button type="default" @click="stop">播报暂停</button>
<button type="default" @click="getEnginesList">获取手机播报引擎</button>
</view>
<view class="eng-list" style="padding: 15px;">
<view class="title">
<text style="font-weight: bold;font-size: 20px;margin-bottom: 10px;">播报情况:</text>
</view>
<view v-for="(i,k) in engineList" :key='k' class="item">
{{i}}
</view>
</view>
</view>
</template>
<script lang="ts" setup>
import {ref} from 'vue';
import { startSpeech, getEngines, stopSpeech, continueSpeech, pauseSpeech } from "@/uni_modules/xwq-tts-speaker";
import { Option, Info } from "@/uni_modules/xwq-tts-speaker/utssdk/interface.uts";
const iptVal = ref("");
const engineList = ref([]);
let num=0;
const iptHandle = (e : UniInputEvent) => {
iptVal.value = e.detail.value;
};
let repeatPlay:(() => void) | null = null;
repeatPlay=function(){
num++
console.log('重复播放===',num)
startSpeech(
{
content: iptVal.value,
enginesName: null, //自定义第三方TTS引擎,前提是手机上已安装
speechRate: 1.5,//播报速度,有些系统TTS不支持设置
pitch: 0.4,//语调设置,默认1,越小越像男生
fail: (val : Info) => {
console.log(val);
},
finish: () => {
console.log('播报结束');
repeatPlay?.()
}
} as Option)
}
//开始播报,在开始之前要先初始化TTS,成功后再开始
const start = () => {
// repeatPlay?.()
startSpeech(
{
content: iptVal.value,
enginesName: null, //自定义第三方TTS引擎,前提是手机上已安装
// speechRate: 0.5,//播报速度,有些系统TTS不支持设置
pitch: 0.4,//语调设置,默认1,越小越像男生
fail: (val : Info) => {
console.log(val);
},
finish: () => {
console.log('播报结束')
engineList.value.push(`${iptVal.value}---播报结束`)
}
} as Option)
};
//停止播报
const stop = () => {
stopSpeech();
};
//获取引擎列表,没有默认系统TTS
const getEnginesList = () => {
let result = getEngines();
engineList.value = result;
}
</script>
更多关于uni-app项目(V3)无法运行web端加密的UTS插件并且插件web目录下的ts、js文件不会加密的实战教程也可以访问 https://www.itying.com/category-93-b0.html
该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
您好,经核实,您遇到的问题并非 Bug,而是 UTS 插件在 web 端调试阶段 的已知限制。下面为您详细说明原因及后续建议:
加密版 UTS 插件 仅支持云端 App 打包
根据官方文档 UTS 插件加密规则,加密文件在 web 端调试时不会被解密,因此 Vite 会把加密后的二进制内容当成源码解析,出现
Unexpected “�”
这类乱码报错是预期行为。
web 目录下的 ts/js 文件 默认不加密 为了方便调试,web 端始终使用源码;只有在 App 云端打包 时才会对 uts 及相关原生代码进行加密处理。
正确姿势
web 调试:请继续使用「源码版」插件。
正式发布 App:再用「加密版」提交云端打包即可,不会影响上架。
版本确认 您当前 HBuilderX 4.87 已是最新正式版,无需升级。
总结:
这不是框架缺陷,而是加密插件的使用边界限制。建议您 web 端保持源码版调试,App 端使用加密版云打包 即可。如有进一步疑问,可在插件市场该插件页面留言或加入官方交流群继续沟通。 内容为 AI 生成,仅供参考
更多关于uni-app项目(V3)无法运行web端加密的UTS插件并且插件web目录下的ts、js文件不会加密的实战教程也可以访问 https://www.itying.com/category-93-b0.html
如需发布付费插件,可对插件设置普通授权版及源码授权版的价格。DCloud插件市场会自动加密付费插件中所有vue、uvue、uts、js、ts文件(除pages、hybrid、static目录外)。
1.文档不是写着付费插件下的uts、ts、js都会自动加密吗?
2.用户下载试用这个插件,不能在本地测试web端?

