# 历史记录页使用

# 快速入门

# 引入头文件

在需要使用想要展示的页面中引入IFLYDOC FLutter SDK的头文件。

import 'package:iflydocs_flutter_plugin/iflydocs_sdk_history.dart';

# 创建视图Widget

设置GlobalKey,以方便操控编辑器回调。

final GlobalKey<IFLYDocsHistoryViewState> historyKey = GlobalKey();

创建编辑器视图Widget在对应视图中,并设置GlobalKey与回调方法

IFLYDocsHistoryView(key: historyKey, historyCallBack: historyCallBack, config: {},)

创建回调方法

// 历史记录页回调
  void historyCallBack(String method, Map arguments){
    print('************** ${method} ${arguments}');
    switch(method) {
      case "docsOnEditorLoad":
        Map history = {
          "hislist" : [
            {
              "_id" : "622ef153e1e9df01ff31640f",
              "uid" : "1628068417165",
              "startV" : 1,
              "endTime" : 1647243605294,
              "updateTime" : 1647243605294,
              "endV" : 4,
              "ops" : [
                {
                  "retain" : 1
                },
                {
                  "delete" : 4
                }
              ],
              "fid" : "103pQ",
              "type" : "editcontent",
              "startTime" : 1647243603885,
              "msg" : "tsk 编辑了内容"
            },
            {
              "msg" : "tsk 编辑了内容",
              "uid" : 1628068417165,
              "fid" : "103pQ",
              "startV" : 0,
              "endV" : 0,
              "_id" : "622ef150e1e9df01ff31640d",
              "ops" : [
                {
                  "delete" : 2
                }
              ],
              "type" : "editcontent",
              "endTime" : 1647243592613,
              "startTime" : 1647243592613,
              "tmpops" : [
                {
                  "delete" : 1
                },
                {
                  "retain" : 4
                },
                {
                  "delete" : 1
                }
              ],
              "updateTime" : 1647243592613
            },
            {
              "_id" : "622ef148e1e9df01ff31640c",
              "uid" : "1628068417165",
              "endTime" : 1647243592612,
              "msg" : "tsk 创建了文档",
              "fid" : "103pQ",
              "type" : "filecreate",
              "startTime" : 0
            }
          ],
          "oplist" : [
            {
              "d" : "103pQ",
              "op" : {
                "ops" : [
                  {
                    "retain" : 1
                  },
                  {
                    "insert" : "1"
                  }
                ]
              },
              "uid" : "1628068417165",
              "v" : 1
            },
            {
              "d" : "103pQ",
              "op" : {
                "ops" : [
                  {
                    "retain" : 2
                  },
                  {
                    "insert" : "2"
                  }
                ]
              },
              "uid" : "1628068417165",
              "v" : 2
            },
            {
              "d" : "103pQ",
              "op" : {
                "ops" : [
                  {
                    "retain" : 3
                  },
                  {
                    "insert" : "3"
                  }
                ]
              },
              "uid" : "1628068417165",
              "v" : 3
            },
            {
              "d" : "103pQ",
              "op" : {
                "ops" : [
                  {
                    "retain" : 4
                  },
                  {
                    "insert" : "4"
                  }
                ]
              },
              "uid" : "1628068417165",
              "v" : 4
            }
          ],
          "histypes" : {
            "FILEREVERT" : {
              "name" : "filerevert",
              "tpl" : "{user} 恢复了文档"
            },
            "FILECOPY" : {
              "name" : "filecopy",
              "tpl" : "{user} 创建了副本"
            },
            "INVITEROLE" : {
              "name" : "inviterole",
              "tpl" : "{user} 邀请了 {customer}"
            },
            "UNSHARE" : {
              "name" : "unshare",
              "tpl" : "{user} 取消了文档分享"
            },
            "FILECREATE" : {
              "name" : "filecreate",
              "tpl" : "{user} 创建了文档"
            },
            "SHARE" : {
              "name" : "share",
              "tpl" : "{user} 分享了文档"
            },
            "TONOTE" : {
              "name" : "tonote",
              "tpl" : "{user} 生成文字文档"
            },
            "FILEDELETE" : {
              "name" : "filedelete",
              "tpl" : "{user} 删除了文档"
            },
            "AUDIO_EXPORT" : {
              "name" : "audio_export",
              "tpl" : "{user} 导出音频"
            },
            "FILEREGAIN" : {
              "name" : "fileregain",
              "tpl" : "{user} 还原到{revertpoint}的内容"
            },
            "DELETEROLE" : {
              "name" : "deleterole",
              "tpl" : "{user} 移除了 {customer}"
            },
            "QUITROLE" : {
              "name" : "quitrole",
              "tpl" : "{user} 退出了协作"
            },
            "EDITCONTENT" : {
              "name" : "editcontent",
              "tpl" : "{user} 编辑了内容"
            },
            "FILERENAME" : {
              "name" : "filerename",
              "tpl" : "{user} 将文档重命名为“{detail}”"
            },
            "CHANGEROLE" : {
              "name" : "changerole",
              "tpl" : "{user} 设置 {customer} 为“{role}”"
            },
            "FILEMOVE" : {
              "name" : "filemove",
              "tpl" : "{user} 将文档移动至“{location}”"
            }
          },
          "snapshot" : {
            "id" : "103pQ",
            "data" : {
              "ops" : [
                {
                  "attributes" : {
                    "header" : 1
                  },
                  "insert" : "\n"
                },
                {
                  "insert" : "\n"
                }
              ]
            },
            "type" : "http:\/\/sharejs.org\/types\/rich-text\/v1",
            "v" : 1,
            "m" : null
          },
          "roles" : {
            "delete" : "无权限",
            "reader" : "仅查看",
            "editor" : "可编辑",
            "admin" : "可管理",
            "owner" : "所有者",
            "inherit" : "继承",
            "none" : "无权限"
          }
        };
        historyKey.currentState.insertHistoryData(0, history);
        historyKey.currentState.insertWaterMark('测试水印');
        break;
      case "docsLoadHistroyData":
        historyKey.currentState.insertHistoryData(1, {});
        break;
      default:
        // throw UnsupportedError("Unrecognized method");
    }
  }

# API列表

# 插入历史记录数据

# 功能概述

插入一页历史记录数据

# 接口声明

void insertHistoryData(int ret, Map history)

# 参数说明

ret: 是否还有数据 0有 1没有了,

history:历史记录数据。

# 返回值说明

无返回值。

# 调用时机

文档编辑器加载完成后,通过网络接口获取数据以传入加载。

# 调用示例

historyKey.currentState.insertHistoryData(0, history);

# 设置水印

# 功能概述

设置历史记录页的水印

# 接口声明

void insertWaterMark(String waterMark)

# 参数说明

waterMark: 水印字符串。

# 返回值说明

无返回值。

# 调用时机

文档编辑器加载完成后,传入加载。

# 调用示例

historyKey.currentState.insertWaterMark('测试水印');

# 设置图片路径

# 功能概述

设置指定objectId的图片本地路径

# 接口声明

void loadImageByObjectId(String objectId, String localPath)

# 参数说明

objectId: 图片id,

localPath:本地路径。

# 返回值说明

无返回值。

# 调用时机

图片加载回调中。

# 调用示例

historyKey.currentState.loadImageByObjectId("testid", filePath);

# 回调列表

初始化时传入的historyCallBack中进行回调的接收。

// 试图加载完毕
docsOnEditorLoad

// 图片加载
docsLoadPhotoImageWithObjectId

// 更多历史记录
docsLoadHistroyData

// 历史记录回滚
docsOnHistoryRevert