# 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. 测试,打包,完成
请务必进行全面测试,确保所有功能正常运行后,再进行打包发布。