# pro1503 **Repository Path**: JueShou/pro1503 ## Basic Information - **Project Name**: pro1503 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-20 - **Last Updated**: 2026-01-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README MAUI 工程 本工程是一个使用 .NET MAUI 框架开发的跨平台应用程序示例。它展示了如何使用 MAUI 构建适用于 Android、iOS、Windows 和 macOS 的应用程序。 ## 目录结构 - `Platforms/`:包含各个平台特定的代码和资源。(其中包含:`MauiWebViewHandler.cs`、`AppsFlyerListener.cs`) - `Resources/`:包含应用程序的图像、字体和样式等资源文件。 - `Controls/`:包含 针对Android优化的自定义WebView控件。 - `Key/`:android 打包的簽名文件 - `Helper/`:包含逻辑辅助类 A/B面的控制等。主要的逻辑都在这里面。 - `MainPage`: 这个是应用程序的主页面。 ## 主要功能 - 离线h5版本加载 页面跳转、打开浏览器、下载应用(跳转浏览器)、跳转其他应用、JS注入、事件接收 ## 动态配置 Adjust/AppsFlyer 参数配置方式: ```json { "juecon": { "cat": "panda", "pin": "0", "ad": "af", "ua": false, "orientation":"portrait" }, "jasstr": "window.jsBridge={postMessage:function(e,p){var params=JSON.parse(p);var map={event:e,params:params,};window.Native.postMessage(JSON.stringify(map))},};" } ``` 其中参数说明: `juecon`是一些额外参数配置, - `cat`:分类 :熊貓 s2s(pandas2s)、熊貓本地(panda)、wg(wg)、天成(tc)、jim(jim)... - `pin`:(待完善)是否需要拼接id, "0"/"1" -- af s2s 的需要 - `ad`:區分类型: ad、af - `ua`:是否使用自定义的UserAgent - `orientation`:屏幕方向 landscape-横屏,portrait-竖屏 `jasstr`是注入的js代码(建议是压缩过的) `sdkKey`是Adjust的sdkKey。 看一下具体的JS代码:(这是Adjust的配置方式) ```js window.jsBridge = { postMessage: function(e, p) { var params = JSON.parse(p); var emapping = { 'firstrecharge': 'v26c56', 'login': 'fwc3wa', 'register': 'aabmfq', 'registerClick': 'ru7y7j', 'openWindow': 'openWindow' }; if (emapping[e]) { if (params['amount']) { params['revenue'] = params['amount'] + ''; params['currency'] = 'BRL' } var map = { event: emapping[e], params: params }; window.Native.postMessage(JSON.stringify(map)) } } }; ``` 再看一下AppsFlyer的 JS代码配置方式: ```js window.jsBridge = { postMessage: function(e, p) { var params = JSON.parse(p); var map = { event: e, params: params, }; window.Native.postMessage(JSON.stringify(map)) }, }; ``` ## 配置建议 将JS写好之后,建议将js进行压缩,然后再配置到`jasstr`里面,以减少注入代码的体积,提升加载速度。 压缩JS可以使用在线工具如 [JSCompress](https://jscompress.com/) 或者[jyshare](https://www.jyshare.com/front-end/51/)。 ## 构建打包 使用以下命令进行发布打包: ``` dotnet publish -c Release -f net9.0-android ``` ## 关于复制项目使用 相关的介绍 ### 1. 修改命名空间 ① 全局替换 namespace 声明(*.cs) Ctrl + Shift + H 查找内容: ``` namespace OldCompany.OldApp // 改为 namespace NewCompany.NewApp ``` 查找范围:整个解决方案 ② 全局替换 using(*.cs) ``` using OldCompany.OldApp // 改为 using NewCompany.NewApp ``` ③ 全局替换 XAML 命名空间(*.xaml,MAUI 必做) ``` clr-namespace:OldCompany.OldApp // 改为 clr-namespace:NewCompany.NewApp ``` 文件类型:.xaml ④ 修改一次 csproj(只改 1 个文件) ``` OldCompany.OldApp // 改为 NewCompany.NewApp ``` ⑤ 修改一次 csproj(只改 1 个文件) ``` x:Class="OldNamespace.MainPage" // 改为 x:Class="NewNamespace.MainPage" ``` 然后清理并重新生成(非常关键)--必须做,否则缓存还在 - 生成 → 清理解决方案 - 生成 → 重新生成解决方案 > 还有一个更“稳”的办法 > 如果你担心误替换: 1、光标放在 namespace OldCompany.OldApp 2、右键 → 重命名 3、输入新 namespace 4、VS 会自动同步 所有引用、using 然后你只需要补一次 XAML 的 clr-namespace 即可。 ### 2. 修改包名 ### 3. 修改应用名称 ### 4. 替换图标和启动图 ### 5. 修改签名文件 ### 6. 检查接口请求的域名和参数 ### 7. 修改index.html文件 ### 8. 测试,打包,完成 请务必进行全面测试,确保所有功能正常运行后,再进行打包发布。