# 如何运行 main_advanced.dart
## 快速开始
### 方法 1: 使用 `-t` 参数指定入口文件(推荐)
```bash
cd example
flutter run -t lib/main_advanced.dart \
--dart-define ONLYOFFICE_SERVER_URL=https://your-server.com \
--dart-define ONLYOFFICE_FILE_URL=https://example.com/document.docx \
--dart-define ONLYOFFICE_JWT_SECRET=your-secret-key \
--dart-define UPLOAD_URL=https://your-upload-server.com/upload
```
### 方法 2: 使用 `--target` 参数(等同于 `-t`)
```bash
cd example
flutter run --target lib/main_advanced.dart \
--dart-define ONLYOFFICE_SERVER_URL=https://your-server.com \
--dart-define ONLYOFFICE_FILE_URL=https://example.com/document.docx
```
### 方法 3: 在 VS Code 中运行
1. 打开 `example/lib/main_advanced.dart` 文件
2. 点击右上角的运行按钮(▶️)
3. 或者按 `F5` 键
4. 在启动配置中添加环境变量(见下方配置)
## 必需的环境变量
### 必需变量
| 变量名 | 说明 | 示例 |
|--------|------|------|
| `ONLYOFFICE_SERVER_URL` | ONLYOFFICE Document Server 地址 | `https://doc.example.com` |
| `ONLYOFFICE_FILE_URL` | 要打开的文档 URL | `https://example.com/document.docx` |
### 可选变量
| 变量名 | 说明 | 示例 |
|--------|------|------|
| `ONLYOFFICE_JWT_SECRET` | JWT 签名密钥(如果服务器启用了 JWT) | `your-secret-key` |
| `UPLOAD_URL` | 图片上传服务器地址(用于图片插入功能) | `https://api.example.com/upload` |
## 完整命令示例
### Windows (PowerShell)
```powershell
cd example
flutter run -t lib/main_advanced.dart `
--dart-define ONLYOFFICE_SERVER_URL=https://doc.example.com `
--dart-define ONLYOFFICE_FILE_URL=https://example.com/document.docx `
--dart-define ONLYOFFICE_JWT_SECRET=my-secret-key `
--dart-define UPLOAD_URL=https://api.example.com/upload
```
### Windows (CMD)
```cmd
cd example
flutter run -t lib/main_advanced.dart ^
--dart-define ONLYOFFICE_SERVER_URL=https://doc.example.com ^
--dart-define ONLYOFFICE_FILE_URL=https://example.com/document.docx ^
--dart-define ONLYOFFICE_JWT_SECRET=my-secret-key ^
--dart-define UPLOAD_URL=https://api.example.com/upload
```
### Linux/macOS
```bash
cd example
flutter run -t lib/main_advanced.dart \
--dart-define ONLYOFFICE_SERVER_URL=https://doc.example.com \
--dart-define ONLYOFFICE_FILE_URL=https://example.com/document.docx \
--dart-define ONLYOFFICE_JWT_SECRET=my-secret-key \
--dart-define UPLOAD_URL=https://api.example.com/upload
```
## VS Code 启动配置
在 `.vscode/launch.json` 中添加配置:
```json
{
"version": "0.2.0",
"configurations": [
{
"name": "OnlyOffice Advanced Demo",
"request": "launch",
"type": "dart",
"program": "example/lib/main_advanced.dart",
"args": [
"--dart-define",
"ONLYOFFICE_SERVER_URL=https://doc.example.com",
"--dart-define",
"ONLYOFFICE_FILE_URL=https://example.com/document.docx",
"--dart-define",
"ONLYOFFICE_JWT_SECRET=my-secret-key",
"--dart-define",
"UPLOAD_URL=https://api.example.com/upload"
]
}
]
}
```
## Android Studio / IntelliJ 配置
1. 打开 **Run** → **Edit Configurations...**
2. 点击 **+** → 选择 **Flutter**
3. 设置:
- **Name**: `OnlyOffice Advanced Demo`
- **Dart entrypoint**: `example/lib/main_advanced.dart`
- **Additional run args**:
```
--dart-define ONLYOFFICE_SERVER_URL=https://doc.example.com --dart-define ONLYOFFICE_FILE_URL=https://example.com/document.docx
```
## 运行前检查清单
### 1. 确保依赖已安装
```bash
cd example
flutter pub get
```
### 2. 检查设备连接
```bash
flutter devices
```
### 3. 权限配置(Android)
在 `example/android/app/src/main/AndroidManifest.xml` 中添加:
```xml
```
### 4. 权限配置(iOS)
在 `example/ios/Runner/Info.plist` 中添加:
```xml
NSCameraUsageDescription
需要访问相机以插入图片到文档
NSPhotoLibraryUsageDescription
需要访问相册以插入图片到文档
```
## 常见问题
### Q: 提示 "Target file not found"
**解决方案**:
```bash
# 确保在 example 目录下
cd example
# 使用相对路径
flutter run -t lib/main_advanced.dart
```
### Q: 环境变量未生效
**解决方案**:
- 检查变量名拼写是否正确
- 确保使用 `--dart-define` 而不是 `--dart-define-from-file`
- 在代码中打印变量值检查:
```dart
print('Server URL: $_serverUrl');
```
### Q: 图片选择器无法打开
**解决方案**:
1. 检查权限配置(见上方)
2. Android: 确保在 AndroidManifest.xml 中添加权限
3. iOS: 确保在 Info.plist 中添加权限描述
### Q: 文件下载失败
**解决方案**:
- 检查网络连接
- 确保 `UPLOAD_URL` 配置正确
- 检查服务器是否支持 CORS
## 调试技巧
### 1. 查看环境变量
在 `main_advanced.dart` 中添加:
```dart
void main() {
print('=== 环境变量检查 ===');
print('Server URL: $_serverUrl');
print('File URL: $_fileUrl');
print('JWT Secret: ${_jwtSecret.isNotEmpty ? "已设置" : "未设置"}');
print('Upload URL: $_uploadUrl');
print('==================');
runApp(const AdvancedDemoApp());
}
```
### 2. 启用详细日志
```bash
flutter run -t lib/main_advanced.dart --verbose
```
### 3. 热重载
运行后按 `r` 键进行热重载,按 `R` 键进行热重启。
## 运行不同平台
### Android
```bash
flutter run -t lib/main_advanced.dart -d android \
--dart-define ONLYOFFICE_SERVER_URL=https://...
```
### iOS
```bash
flutter run -t lib/main_advanced.dart -d ios \
--dart-define ONLYOFFICE_SERVER_URL=https://...
```
### Web
```bash
flutter run -t lib/main_advanced.dart -d chrome \
--dart-define ONLYOFFICE_SERVER_URL=https://...
```
## 快速测试(最小配置)
如果只是想快速测试,可以只设置必需变量:
```bash
cd example
flutter run -t lib/main_advanced.dart \
--dart-define ONLYOFFICE_SERVER_URL=https://doc.example.com \
--dart-define ONLYOFFICE_FILE_URL=https://example.com/document.docx
```
注意:不设置 `UPLOAD_URL` 时,图片插入功能会使用本地路径(仅用于演示)。
## 下一步
运行成功后,您可以:
1. ✅ 测试文档查看和编辑
2. ✅ 测试图片插入功能(相机/相册)
3. ✅ 测试文件下载功能
4. ✅ 测试审阅模式
5. ✅ 测试自定义 JavaScript 执行
查看 [高级功能指南](../docs/ADVANCED_FEATURES.md) 了解更多功能!