Files
cunkebao_v3/Appbuild/README.md
超级老白兔 9193bda39f FEAT => 本次更新项目为:
初始化appbuild
2025-07-31 17:41:43 +08:00

281 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 存客宝 - UniApp 套壳应用
这是一个基于 UniApp 开发的安卓套壳应用,主要功能是作为内置浏览器加载目标网站,并提供完整的组件通信功能。
## 🚀 主要特性
- **全屏 WebView** - 无边框、无导航栏的全屏显示
- **双向通信** - UniApp 与网页之间的完整消息通信
- **无缝体验** - 用户无法察觉这是一个套壳应用
- **错误处理** - 完善的加载失败和网络错误处理
- **备用地址** - 支持主地址失败时自动切换到备用地址
- **调试模式** - 可选的调试信息显示
## 📱 应用配置
### 1. 修改目标网站
`config.js` 文件中修改目标网站地址:
```javascript
webConfig: {
// 主要目标网站URL请替换为您的实际网站
mainUrl: 'https://your-target-website.com',
// 备用网站URL如果主网站无法访问
fallbackUrl: 'https://backup-website.com',
}
```
### 2. 应用设置
```javascript
appConfig: {
// 应用名称
appName: '存客宝',
// 应用版本
version: '1.0.0',
// 是否显示加载动画
showLoading: true,
// 加载超时时间(毫秒)
loadingTimeout: 10000,
// 是否启用调试模式
debug: false
}
```
## 🔄 通信功能
### UniApp 向网页发送消息
网页可以通过以下方式接收来自 UniApp 的消息:
```javascript
// 监听来自 UniApp 的消息
window.addEventListener("uniAppMessage", function (event) {
const message = event.detail;
console.log("收到 UniApp 消息:", message);
switch (message.type) {
case "userInfo":
// 处理用户信息
console.log("用户信息:", message.data);
break;
case "deviceInfo":
// 处理设备信息
console.log("设备信息:", message.data);
break;
case "shareResult":
// 处理分享结果
console.log("分享结果:", message.data);
break;
case "paymentResult":
// 处理支付结果
console.log("支付结果:", message.data);
break;
case "confirmResult":
// 处理确认结果
console.log("确认结果:", message.data);
break;
}
});
```
### 网页向 UniApp 发送消息
网页可以通过 `window.uniAppBridge` 对象与 UniApp 通信:
```javascript
// 检查桥接是否可用
if (window.uniAppBridge) {
// 获取用户信息
window.uniAppBridge.getUserInfo();
// 获取设备信息
window.uniAppBridge.getDeviceInfo();
// 显示 Toast
window.uniAppBridge.showToast("操作成功!", 2000);
// 显示 Alert
window.uniAppBridge.showAlert("提示", "这是一个提示信息");
// 显示 Confirm
window.uniAppBridge.showConfirm("确认", "确定要执行此操作吗?");
// 分享
window.uniAppBridge.share({
url: "https://example.com",
title: "分享标题",
summary: "分享描述",
});
// 支付
window.uniAppBridge.payment({
amount: 100,
orderId: "order123",
description: "商品描述",
});
// 发送自定义消息
window.uniAppBridge.postMessage("customType", {
key: "value",
data: "custom data",
});
}
```
## 🛠️ 开发指南
### 1. 环境准备
确保已安装 HBuilderX 并配置好 UniApp 开发环境。
### 2. 修改配置
1. 打开 `config.js` 文件
2. 修改 `mainUrl` 为您的目标网站地址
3. 根据需要修改其他配置项
### 3. 编译打包
1. 在 HBuilderX 中打开项目
2. 选择 "发行" -> "原生 App-云打包"
3. 选择 Android 平台
4. 配置应用图标和签名信息
5. 点击打包
### 4. 测试通信功能
在目标网站中添加以下测试代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>测试页面</title>
</head>
<body>
<h1>UniApp 套壳应用测试</h1>
<button onclick="testCommunication()">测试通信</button>
<button onclick="getUserInfo()">获取用户信息</button>
<button onclick="getDeviceInfo()">获取设备信息</button>
<button onclick="showToast()">显示 Toast</button>
<div id="result"></div>
<script>
// 监听来自 UniApp 的消息
window.addEventListener("uniAppMessage", function (event) {
const message = event.detail;
document.getElementById("result").innerHTML =
"<p>收到消息: " + JSON.stringify(message) + "</p>";
});
function testCommunication() {
if (window.uniAppBridge) {
window.uniAppBridge.postMessage("test", {
message: "Hello from Web!",
timestamp: Date.now(),
});
} else {
alert("桥接未初始化");
}
}
function getUserInfo() {
if (window.uniAppBridge) {
window.uniAppBridge.getUserInfo();
}
}
function getDeviceInfo() {
if (window.uniAppBridge) {
window.uniAppBridge.getDeviceInfo();
}
}
function showToast() {
if (window.uniAppBridge) {
window.uniAppBridge.showToast("这是一个测试 Toast");
}
}
</script>
</body>
</html>
```
## 📋 消息类型说明
### 从网页到 UniApp
| 消息类型 | 说明 | 参数 |
| --------------- | ------------ | -------------------------------- |
| `getUserInfo` | 获取用户信息 | 无 |
| `getDeviceInfo` | 获取设备信息 | 无 |
| `toast` | 显示 Toast | `{message, duration}` |
| `alert` | 显示 Alert | `{title, content}` |
| `confirm` | 显示 Confirm | `{title, content}` |
| `share` | 分享功能 | `{url, title, summary}` |
| `payment` | 支付功能 | `{amount, orderId, description}` |
| `navigate` | 页面导航 | `{url}` |
### 从 UniApp 到网页
| 消息类型 | 说明 | 数据 |
| --------------- | -------- | --------------------- |
| `userInfo` | 用户信息 | 用户数据对象 |
| `deviceInfo` | 设备信息 | 设备数据对象 |
| `shareResult` | 分享结果 | `{success, error?}` |
| `paymentResult` | 支付结果 | `{success, orderId?}` |
| `confirmResult` | 确认结果 | `{confirmed}` |
## 🔧 自定义功能
### 添加新的消息类型
1.`config.js` 中添加新的消息类型:
```javascript
messageTypes: {
// ... 现有类型
CUSTOM_ACTION: "customAction";
}
```
2.`index.vue` 中添加处理逻辑:
```javascript
case this.config.communication.messageTypes.CUSTOM_ACTION:
this.handleCustomAction(data);
break;
```
3. 实现处理方法:
```javascript
handleCustomAction(data) {
// 处理自定义操作
console.log('自定义操作:', data);
// 返回结果给网页
this.sendToIframe('customActionResult', { success: true });
}
```
## 🚨 注意事项
1. **网络安全** - 确保目标网站使用 HTTPS 协议
2. **权限配置** - 在 `manifest.json` 中配置必要的网络权限
3. **兼容性** - 测试不同 Android 版本的兼容性
4. **性能优化** - 避免频繁的消息通信,影响性能
5. **错误处理** - 完善错误处理机制,提升用户体验
## 📞 技术支持
如有问题或需要技术支持,请联系开发团队。