yx_only_office_flutter/example/EXAMPLE_GUIDE.md

210 lines
4.6 KiB
Markdown
Raw Permalink 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.

# OnlyOffice Flutter 插件 - 示例运行指南
## 简单示例
这是一个使用真实 OnlyOffice 服务的简单示例,展示如何快速集成和使用插件。
### 配置信息
示例中使用的配置:
- **OnlyOffice 服务**: `https://document.23544.com/`
- **JWT Token**: `6Yr6DGoVV3ACS6GtVgdH453mXxLftd6Q`
- **示例文件**: `https://quanxue-oa.oss-cn-chengdu.aliyuncs.com/20250815/1755244744547.pptx`
### 运行简单示例
```bash
# 进入 example 目录
cd example
# 运行简单示例
flutter run -t lib/simple_example.dart
```
### 在 Android 设备上运行
```bash
# 连接 Android 设备或启动模拟器
flutter devices
# 运行
flutter run -t lib/simple_example.dart -d android
```
### 在 iOS 设备上运行
```bash
# 连接 iOS 设备或启动模拟器
flutter devices
# 运行
flutter run -t lib/simple_example.dart -d ios
```
## 高级示例
项目还包含一个功能更丰富的高级示例 `main_advanced.dart`
### 运行高级示例(需要配置环境变量)
```bash
flutter run -t lib/main_advanced.dart \
--dart-define ONLYOFFICE_SERVER_URL=https://document.23544.com/ \
--dart-define ONLYOFFICE_FILE_URL=https://quanxue-oa.oss-cn-chengdu.aliyuncs.com/20250815/1755244744547.pptx \
--dart-define ONLYOFFICE_JWT_SECRET=6Yr6DGoVV3ACS6GtVgdH453mXxLftd6Q
```
## 代码示例
### 基本用法
```dart
import 'package:yx_only_office_flutter/yx_only_office_flutter.dart';
// 在 Widget 树中使用
OnlyOfficeViewer(
onlyOfficeServerUrl: 'https://document.23544.com/',
fileUrl: 'https://your-file-url.com/document.pptx',
token: 'your-jwt-token',
)
```
### 不带 Token 使用
如果你的 OnlyOffice 服务器不需要 JWT 验证:
```dart
OnlyOfficeViewer(
onlyOfficeServerUrl: 'https://document.23544.com/',
fileUrl: 'https://your-file-url.com/document.docx',
// token 参数可以省略或设置为 null
)
```
### 完整页面示例
```dart
import 'package:flutter/material.dart';
import 'package:yx_only_office_flutter/yx_only_office_flutter.dart';
class DocumentViewerPage extends StatelessWidget {
const DocumentViewerPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('文档查看器'),
),
body: OnlyOfficeViewer(
onlyOfficeServerUrl: 'https://document.23544.com/',
fileUrl: 'https://quanxue-oa.oss-cn-chengdu.aliyuncs.com/20250815/1755244744547.pptx',
token: '6Yr6DGoVV3ACS6GtVgdH453mXxLftd6Q',
),
);
}
}
```
## 支持的文档格式
### Word 文档
- `.doc`, `.docx` - Microsoft Word
- `.pdf` - PDF 文档
- `.txt` - 文本文件
- `.rtf` - 富文本格式
- `.odt` - OpenDocument 文本
### Excel 表格
- `.xls`, `.xlsx` - Microsoft Excel
- `.csv` - CSV 文件
- `.ods` - OpenDocument 表格
### PowerPoint 演示文稿
- `.ppt`, `.pptx` - Microsoft PowerPoint
- `.odp` - OpenDocument 演示文稿
## 常见问题
### 1. 文档无法加载
**可能原因**:
- OnlyOffice 服务器地址不正确
- 文件 URL 无法访问
- JWT Token 无效或过期
- 网络连接问题
**解决方案**:
- 检查服务器 URL 是否正确
- 确认文件 URL 可以在浏览器中访问
- 验证 JWT Token 是否有效
- 检查网络连接
### 2. Android 上网络请求被阻止
**解决方案**: 确保在 `AndroidManifest.xml` 中添加了网络权限:
```xml
<uses-permission android:name="android.permission.INTERNET" />
```
### 3. iOS 上无法加载 HTTP 内容
**解决方案**: 如果使用 HTTP不推荐需要在 `Info.plist` 中配置:
```xml
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
```
**注意**: 建议使用 HTTPS 以确保安全。
## 性能优化建议
1. **预加载文档**: 如果知道用户将要查看哪些文档,可以预先加载
2. **缓存策略**: 考虑实现文档缓存机制
3. **网络监控**: 监控网络状态,在网络不佳时给出提示
4. **错误处理**: 实现适当的错误处理和重试机制
## 调试
### 启用 WebView 调试Android
```dart
import 'package:webview_flutter_android/webview_flutter_android.dart';
// 在初始化时启用调试
if (Platform.isAndroid) {
final controller = WebViewAndroidController();
await controller.enableDebugging(true);
}
```
### 查看日志
运行应用时查看控制台输出:
```bash
flutter run -t lib/simple_example.dart -v
```
## 更多信息
- [插件 README](../README.md)
- [测试报告](../TEST_REPORT.md)
- [API 文档](../docs/API_REFERENCE.md)
- [高级功能](../docs/ADVANCED_FEATURES.md)
## 技术支持
如有问题或建议,请提交 Issue 或 Pull Request。
---
**最后更新**: 2025年12月4日