tauri配置允许执行eval脚本,在打包cocos游戏web/phone移动端的时候一定要配置

解决办法:在tauriconfig中配置

"csp": "default-src 'self' asset: 'unsafe-inline' customprotocol://* http://localhost:* ws:localhost:* 'unsafe-eval' ipc: http://ipc.localhost; script-src 'unsafe-eval' 'self' https://www.googletagmanager.com 'unsafe-inline'; connect-src 'self' http://localhost:* ws:localhost:* ipc://localhost https://api.github.com https://www.google-analytics.com https://google-analytics.com https://pakeplus.com http://ipc.localhost customprotocol://* https://www.pakeplus.com; img-src 'self' https://avatars.githubusercontent.com https://www.googletagmanager.com asset: http://asset.localhost blob: data: http://asset.localhost; font-src 'self' asset: http://localhost data:;",

这个错误是由于浏览器的内容安全策略(CSP)阻止了字符串形式的JavaScript代码执行。让我为您分析并提供解决方案。

问题分析

从错误信息可以看出:

  • 您的CSP策略禁止使用unsafe-eval

  • 代码试图通过Function()构造函数或eval()执行字符串形式的JavaScript

  • 错误发生在Tauri应用程序环境中

在cocos游戏打包为移动端web的时候,需要这个场景配置。

还需要注意就是在通过参数传递到index..html后面的时候,在rust中使用base64解析,然后再传递,可以有效防止特殊字符编码问题。然后在js中通过下面的方式获取解析参数:

        // 获取url中的查询参数
        const urlSearch = window.location.search
        console.log('urlSearch', urlSearch)
        const urlParams = new URLSearchParams(urlSearch)
        console.log('game on urlParams', urlParams)
        const token = urlParams.get('ppargs')
        console.log('game on load', token)

再使用base64解析获取到的参数即可。

### Tauri 2.0 配置方法和设置指南 #### 创建 Tauri 2.0 项目 由于官方尚未完全完善针对 Tauri 2.0 的文档支持,创建项目的流程可能会遇到一定挑战。可以通过 Issue 和社区讨论找到解决方案[^2]。以下是基于现有信息总结的配置步骤: 1. **初始化项目** 使用 `npm` 或 `yarn` 初始化一个新的前端项目,并确保安装了必要的工具链(Node.js、Rust 等)。可以参考以下命令完成初始环境搭建: ```bash npm init tauri@next my-tauri-app cd my-tauri-app ``` 这里通过指定 `@next` 版本来获取最新的预览版本。 2. **更新到 Tauri 2.0** 如果默认创建的是旧版本,则需要手动调整依赖项至最新版本。编辑 `package.json` 文件中的 Tauri 相关字段,将其指向 `2.x` 分支或标签。例如: ```json { "dependencies": { "@tauri-apps/api": "^2.0", "tauri": "^2.0" } } ``` 3. **验证安装** 完成修改后运行以下命令以确认安装无误: ```bash npm install npx tauri info ``` 此命令会显示当前环境的状态以及所使用的 Tauri 版本号。 --- #### 基础配置选项 Tauri 提供了一个灵活的配置机制,允许开发者自定义应用程序的行为。核心配置文件位于项目根目录下的 `src-tauri/tauri.conf.json` 中。以下是几个重要的配置参数及其作用说明: 1. **窗口管理** 设置窗口大小、位置以及其他外观属性: ```json { "build": { "distDir": "../dist", "devPath": "http://localhost:8080" }, "windows": [ { "title": "My App", "width": 800, "height": 600, "resizable": true } ] } ``` 2. **打包与分发** 调整目标平台和支持的功能模块: ```json { "bundle": { "active": true, "identifier": "com.example.myapp", "targets": ["debian", "macos", "windows"] } } ``` 3. **安全性增强** 利用内置的安全策略保护数据传输过程免受攻击风险: ```json { "allowlist": { "all": false, "shell": { "open": true, "execute": false } } } ``` 更多高级配置详情可查阅官方文档或相关教程[^3]。 --- #### 后端开发集成 如果计划扩展应用功能并引入 Rust 编写的业务逻辑,则需熟悉前后端交互方式。通常借助 API 接口实现调用关系,具体如下所示: 1. **注册命令** 在 `src-tauri/src/main.rs` 文件中声明可用的操作入口点: ```rust use tauri::Manager; #[tauri::command] fn greet(name: &str) -> String { format!("Hello, {}!", name) } fn main() { tauri::Builder::default() .invoke_handler(tauri::generate_handler![greet]) .run(tauri::generate_context!()) .expect("error while running tauri application"); } ``` 2. **从前端触发** JavaScript 层面可通过 invoke 方法访问上述定义的服务接口: ```javascript window.tauri.invoke('greet', { name: 'World' }).then((response) => { console.log(response); // 输出 Hello, World! }); ``` 此模式充分利用了 Rust 的高性能特点同时保持良好的用户体验一致性[^4]。 --- ### 总结 以上介绍了有关于 Tauri 2.0 的基本配置流程及相关注意事项。尽管目前存在一定的学习曲线,但凭借其卓越的技术优势相信未来会有更加完善的生态体系形成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1024小神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值