开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 0 Fork 4K

micoder/O2OA

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (6)
标签 (42)
master
wrdp
develop
release
dependabot/maven/o2server/org.quartz-scheduler-quartz-2.3.2
dependabot/npm_and_yarn/o2server/mixin-deep-1.3.2
6.0.2
6.0.1
6.0.0
5.4.1
wrdp-5.4.0
5.4.0
5.3.5
5.3.4
5.3.3
5.3.2
5.3.1
5.3.0
wrdp-5.3.0
wrdp-5.2.6
wrdp-5.2.5
wrdp-5.2.4
wrdp-5.2.3
5.2.5
wrdp-5.2
5.2.4
master
分支 (6)
标签 (42)
master
wrdp
develop
release
dependabot/maven/o2server/org.quartz-scheduler-quartz-2.3.2
dependabot/npm_and_yarn/o2server/mixin-deep-1.3.2
6.0.2
6.0.1
6.0.0
5.4.1
wrdp-5.4.0
5.4.0
5.3.5
5.3.4
5.3.3
5.3.2
5.3.1
5.3.0
wrdp-5.3.0
wrdp-5.2.6
wrdp-5.2.5
wrdp-5.2.4
wrdp-5.2.3
5.2.5
wrdp-5.2
5.2.4
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (6)
标签 (42)
master
wrdp
develop
release
dependabot/maven/o2server/org.quartz-scheduler-quartz-2.3.2
dependabot/npm_and_yarn/o2server/mixin-deep-1.3.2
6.0.2
6.0.1
6.0.0
5.4.1
wrdp-5.4.0
5.4.0
5.3.5
5.3.4
5.3.3
5.3.2
5.3.1
5.3.0
wrdp-5.3.0
wrdp-5.2.6
wrdp-5.2.5
wrdp-5.2.4
wrdp-5.2.3
5.2.5
wrdp-5.2
5.2.4
O2OA
/
o2ios
/
O2Platform
/
Manager
/
O2VersionManager.swift
O2OA
/
o2ios
/
O2Platform
/
Manager
/
O2VersionManager.swift
O2VersionManager.swift 4.37 KB
一键复制 编辑 原始数据 按行查看 历史
//
// O2 App 版本管理
// O2VersionManager.swift
// O2Platform
//
// Created by FancyLou on 2019年11月15日.
// Copyright © 2019 zoneland. All rights reserved.
//
import UIKit
import Alamofire
import CocoaLumberjack
import SwiftyJSON
import ObjectMapper
import Promises
class O2VersionManager {
static let shared: O2VersionManager = {
return O2VersionManager()
}()
private init() {}
//检查版本
func checkAppUpdate(call:@escaping (_ versionInfo: O2VersionInfoModel?, _ error :String?) -> Void) {
if let infoPath = Bundle.main.path(forResource: "Info", ofType: "plist"), let dic = NSDictionary(contentsOfFile: infoPath) {
if let versionUrl = dic["o2 app version url"] as? String {
all(self.loadLastAppVersionInfo(url: versionUrl), self.appBuild()).then { (results) in
let ios = results.0
let appBuild = results.1
let onlineIosBuild = Int(string: ios.buildNo ?? "0") ?? 0
let thisAppBuild = Int(string: appBuild) ?? 0
if onlineIosBuild > thisAppBuild {
call(ios, nil)
}else {
call(nil, "没有新版本,不需要更新!")
}
}.catch { (err) in
DDLogError(err.localizedDescription)
call(nil, err.localizedDescription)
}
}else {
DDLogError("没有配置版本更新地址,无法检查更新!")
call(nil, "没有配置版本更新地址,无法检查更新!")
}
}else {
DDLogError("没有Info.plist文件。。。。。是吗???")
call(nil, "没有配置版本更新地址,无法检查更新!")
}
}
func updateAppVersion(_ downloadUrl: String?) {
if let obj = downloadUrl {
DDLogDebug("更新app地址:\(obj)")
if let appURL = URL(string: obj) {
if UIApplication.shared.canOpenURL(appURL) {
UIApplication.shared.openURL(appURL)
}else {
DDLogError("地址不对,无法升级!")
}
}
}else {
DDLogError("download地址为空!")
}
}
private func loadLastAppVersionInfo(url: String) -> Promise<O2VersionInfoModel> {
return Promise { fulfill, reject in
//获取版本信息
if let timeUrl = AppDelegate.o2Collect.generateTimestampWithURL(url) {
DDLogDebug("url with time : \(timeUrl)")
Alamofire.request(timeUrl).responseJSON {
response in
switch response.result {
case .success(let val):
let ios = JSON(val)["ios"]
if let iosModel = Mapper<O2VersionInfoModel>().map(JSONString:ios.description) {
let build = iosModel.buildNo
let version = iosModel.versionName
let url = iosModel.downloadUrl
DDLogDebug("ios version:\(version ?? "") , build:\(build ?? ""), url:\(url ?? "")")
fulfill(iosModel)
}else {
DDLogError("解析版本信息对象异常")
reject(OOAppError.jsonMapping(message: "解析版本信息对象异常", statusCode: 1024, data: nil))
}
case .failure(let err):
DDLogError(err.localizedDescription)
reject(err)
}
}
}
}
}
private func appBuild() -> Promise<String> {
return Promise { fulfill, reject in
if let info = Bundle.main.infoDictionary {
let buildId = info["CFBundleVersion"] as? String
let version = info["CFBundleShortVersionString"] as? String
DDLogDebug("build: \(buildId ?? "") , version:\(version ?? "")")
fulfill(buildId ?? "")
}else {
DDLogError("没有系统 info !!!!!!")
reject(OOAppError.common(type: "system", message: "没有系统 info !", statusCode: 1024))
}
}
}
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

开源OA系统 - 码云GVP|Java开源oa|企业OA办公平台|企业OA|协同办公OA|流程平台OA|O2OA|OA,支持国产麒麟操作系统和国产数据库(达梦、人大金仓),政务OA,军工信息化OA
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/micoder/O2OA.git
git@gitee.com:micoder/O2OA.git
micoder
O2OA
O2OA
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /