编辑: yyy888555 | 2019-07-17 |
7、 目前需要做成的方案 更新下载 Confidential - Restricted Page
8 ? 2010Foxit Corporation 自动更新部分(某些功能需要回调的函数) 、手动更新(通过 check for updates 的方式) 、 手动从网站上面进行下载(通过菜单的 install updates 来进行的更新方式) 1. 针对客户端问题的解决办法 目前 reader 的更新主要分为两种,所有 reader 通用的更新和每个 reader 都对应需要的更 新 服务器模块的描述需要包含一个标识来表示是否是通用的 type=\ 1\ 或者 type=\ 2\ 客户端信息管理包含两部分内容, 一部分是检查是否需要更新, 另外一部分是下载更新后的 信息存储. .fzip 包内的 setup.xml 文件,只包含安装包文件,描述信息如下: 安装包文件需要自己在成功安装后,去写对应的配置信息,配置的信息内容有如下规范: 1) 通用类型 HKEY_LOCAL_MACHINE\Software\Foxit Software\Foxit Update\Foxit Reader 子项:Foxit Phantom 子项(例如 Foxit Phantom)中对应的键以及键值 键:regkey,键值:HKEY_LOCAL_MACHINE\SOFTWARE\Foxit Software\Foxit Phantom 键version, 键值:Version 这样的更新插件目前有:phantom、toolbar、editor、joyinker、ifilter() 2) 不通用类型 UpdateInfo.xml 3) 插件安装完配置信息的流程图 更新下载 Confidential - Restricted Page
9 ? 2010Foxit Corporation 解压fzip完,解析 setup.xml Setup.xml文件中包含需 要需要运行的文件,以 及相关的配置信息 类型 运行xml name对应的 程序来执行安装 填写配置信息 往reader当前目录下 updaterinfo.xml填写配 置信息 是否成功安装 是否成功安装 描述的位置在: HKEY_LOCAL_MACHINE\ Software\Foxit Software\Foxit Update\Foxit Reader 子项 name 子项(例如Foxit Phantom)中对应的键 以及键值 键:regkey,键值:H KEY_LOCAL_MACHINE\ SOFTWARE\Foxit Software\Foxit Phantom 键version, 键值:Version 结束 reader运行起来,将reader所在的路径传递 给安装程序 模块的name Version File1 ... reader插件拷贝失败 往reader当前目录下 updaterinfo.xml填写下 次启动需要更新的信 息 通用类型 不通用类型 成功 不成功 成功 不成功 是reader插件 不是reader 插件 造成的 失败 4) 更新程序检查模块是否需要更新的流程图 更新下载 Confidential - Restricted Page
10 ? 2010Foxit Corporation 5) Install update 和check for updates 统一 所有的配置信息都是由 fzip 里面的安装文件去完成,故可以做到统一. 更新下载 Confidential - Restricted Page
11 ? 2010Foxit Corporation 6) UAC 的问题 通过目前独立的程序就已经可以解决了,本身运行需要手动提升权限,reader 调用过程可 以马上就提升权限(升级程序每次运行都是管理员权限) 7) Reader 和下载程序之间的交付 比如 reader 点击 ondemandcm, 没有就需要启动下载程序下载 ondemandcm, 下载完毕后通知 应用程序. (问题允许启动多进程还是单进程,比如正在下载 editor 的时候,这个时候预览 到了一个图片,需要 jpeg2000,需要下载完成后,通知刷新) . 8) 下载过程中,继续、暂停、取消响应的时间过长 2. 针对服务器端的修改 服务器整理 目前: 自动更新目前:数据库,reader 表格,存储版本号;
插件表格,存储插件 name;
插件版本, 存储每种插件的所有的版本;
compatible 表格, 描述就是每个 reader 版本对应的所有插件. 实现: 有一个后台发布程序,添加每次插件发布的信息,发布完成后,立刻生成每个 reader 对应 的插件更新信息 xml 文件. Check for updates 使用版本控制,每个版本对应一个 xml 文件,例如 UpdateList3.3.0.0431.xml UpdateList_CN3.3.0.0431.xml UpdateList_Phantom3.3.0.0431.xml,可以进行分目录 自动更新部分 到解析指定的 xml 文件,然后进行模块 name 比较,得到更新信息. ........