This action will force synchronization from 兰德网络O2OA平台软件/O2OA, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
//// AppDelegate.swift// O2Platform//// Created by 刘振兴 on 16/6/14.// Copyright © 2016年 zoneland. All rights reserved.//import UIKitimport CocoaLumberjackimport AlamofireNetworkActivityIndicatorimport EZSwiftExtensionsimport UserNotificationsimport O2OA_Auth_SDKimport Flutterimport IQKeyboardManagerSwiftlet isProduction = true@UIApplicationMainclass AppDelegate: FlutterAppDelegate, JPUSHRegisterDelegate, UNUserNotificationCenterDelegate {var _mapManager: BMKMapManager?//中心服务器节点类public static let o2Collect = O2Collect()//中心服务器绑定数据信息public static var deviceData = CollectDeviceData()//网络监听public let o2ReachabilityManager = O2ReachabilityManager.sharedInstance// flutter enginevar flutterEngine : FlutterEngine?override func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {let themeName = AppConfigSettings.shared.themeNameif themeName != "" {//主题print("主题色:\(themeName)")O2ThemeManager.setTheme(plistName: themeName, path: .mainBundle)}else {O2ThemeManager.setTheme(plistName: "red", path: .mainBundle)}//搜索框UISearchBar.appearance().theme_barTintColor = ThemeColorPicker(keyPath: "Base.base_color")UISearchBar.appearance().tintColor = UIColor.whiteUITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).theme_tintColor = ThemeColorPicker(keyPath: "Base.base_color")//启动日志管理器O2Logger.startLogManager()//日志文件_ = O2Logger.getLogFiles()O2Logger.debug("设置运行版本==========,\(PROJECTMODE)")//网络检查o2ReachabilityManager.startListening()//AlamofireNetworkActivityIndicatorManager.shared.isEnabled = true//设置一个是否第一授权的标志if #available(iOS 10.0, *){let center = UNUserNotificationCenter.current()center.delegate = selflet options:UNAuthorizationOptions = [.badge,.alert,.sound]center.requestAuthorization(options: options, completionHandler: { (granted, err) inif granted == true {//记录已经打开授权//print("aaaaaaaaaaaa")AppConfigSettings.shared.notificationGranted = trueAppConfigSettings.shared.firstGranted = trueNotificationCenter.default.post(name: NSNotification.Name.init("SETTING_NOTI"), object: nil)}else{//记录禁用授权AppConfigSettings.shared.notificationGranted = falseAppConfigSettings.shared.firstGranted = trueNotificationCenter.default.post(name: NSNotification.Name.init("SETTING_NOTI"), object: nil)}})}else{let types:UIUserNotificationType = [.badge,.alert,.sound]let setting = UIUserNotificationSettings(types: types, categories: nil)UIApplication.shared.registerUserNotificationSettings(setting)}//UMessage.setLogEnabled(true)//蒲公英let pgyAppId = PGY_APP_IDPgyManager.shared().themeColor = base_colorPgyManager.shared().feedbackActiveType = KPGYFeedbackActiveType.pgyFeedbackActiveTypeThreeFingersPanPgyManager.shared().start(withAppId: pgyAppId)PgyUpdateManager.sharedPgy().start(withAppId: pgyAppId)if UIDevice.deviceModelReadable() == "Simulator" {AppDelegate.deviceData.name = UIDevice.idForVendor()!}//Buglyy异常上报Bugly.start(withAppId: BUGLY_ID)//JPush_setupJPUSH()JPUSHService.setup(withOption: launchOptions, appKey: JPUSH_APP_KEY, channel: JPUSH_channel, apsForProduction: isProduction)JMessage.setupJMessage(launchOptions, appKey: JPUSH_APP_KEY, channel: JPUSH_channel, apsForProduction: isProduction, category: nil, messageRoaming: true)_setupJMessage()_mapManager = BMKMapManager()BMKMapManager.setCoordinateTypeUsedInBaiduMapSDK(BMK_COORDTYPE_BD09LL)_mapManager?.start(BAIDU_MAP_KEY, generalDelegate: nil)JPUSHService.registrationIDCompletionHandler { (resCode, registrationID) inif resCode == 0 {O2Logger.debug("registrationID获取成功\(registrationID ?? "")")//AppDelegate.deviceData.name = registrationIDO2AuthSDK.shared.setDeviceToken(token: registrationID ?? "registrationIDerror0x0x")}else{O2Logger.debug("registrationID获取失败,code:\(resCode)")O2AuthSDK.shared.setDeviceToken(token: registrationID ?? "registrationIDerror0x0x")}}// OOPlusButtonSubclass.register()OOTabBarHelper.initTabBarStyle()//IQKeyboardManager.shared.enable = truereturn super.application(application, didFinishLaunchingWithOptions: launchOptions)}// MARK:- private func Jpushprivate func _setupJPUSH() {if #available(iOS 10, *) {let entity = JPUSHRegisterEntity()entity.types = NSInteger(UNAuthorizationOptions.alert.rawValue) |NSInteger(UNAuthorizationOptions.sound.rawValue) |NSInteger(UNAuthorizationOptions.badge.rawValue)JPUSHService.register(forRemoteNotificationConfig: entity, delegate: self)} else {// ios 8 以前 categories 必须为nilJPUSHService.register(forRemoteNotificationTypes: UIRemoteNotificationType.badge.rawValue |UIRemoteNotificationType.sound.rawValue |UIRemoteNotificationType.alert.rawValue,categories: nil)}}// MARK: - private funcprivate func _setupJMessage() {JMessage.add(self as! JMessageDelegate, with: nil)// JMessage.setLogOFF()JMessage.setLogOFF()// if #available(iOS 8, *) {// JMessage.register(// forRemoteNotificationTypes: UIUserNotificationType.badge.rawValue |// UIUserNotificationType.sound.rawValue |// UIUserNotificationType.alert.rawValue,// categories: nil)// } else {// // iOS 8 以前 categories 必须为nil// JMessage.register(// forRemoteNotificationTypes: UIRemoteNotificationType.badge.rawValue |// UIRemoteNotificationType.sound.rawValue |// UIRemoteNotificationType.alert.rawValue,// categories: nil)// }}override func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {super.application(application, didRegisterForRemoteNotificationsWithDeviceToken: deviceToken)// let deviceId = deviceToken.hexString// if !deviceId.isEmpty {// AppDelegate.deviceData.name = deviceId// }else{// AppDelegate.deviceData.name = "104C9F7F-7403-4B3E-B6A2-C222C82074FF"// }O2Logger.debug("get the deviceToken \(deviceToken)")NotificationCenter.default.post(name: Notification.Name(rawValue: "DidRegisterRemoteNotification"), object: deviceToken)JPUSHService.registerDeviceToken(deviceToken)JMessage.registerDeviceToken(deviceToken)}override func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {DDLogDebug("open url :\(url.absoluteString)")return true}override func application(_ application: UIApplication, didRegister notificationSettings: UIUserNotificationSettings) {if notificationSettings.types.rawValue == 0 {AppConfigSettings.shared.notificationGranted = falseAppConfigSettings.shared.firstGranted = trueNotificationCenter.default.post(name: NSNotification.Name.init("SETTING_NOTI"), object: nil)}else{AppConfigSettings.shared.notificationGranted = trueAppConfigSettings.shared.firstGranted = trueNotificationCenter.default.post(name: NSNotification.Name.init("SETTING_NOTI"), object: nil)}}override func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {DDLogError(error.localizedDescription)AppDelegate.deviceData.name = "104C9F7F-7403-4B3E-B6A2-C222C82074FF"}override func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) {JPUSHService.handleRemoteNotification(userInfo)O2Logger.debug("收到通知,\(userInfo)")NotificationCenter.default.post(name: Notification.Name(rawValue: "AddNotificationCount"), object: nil) //把 要addnotificationcount}override func application(_ application: UIApplication, didReceive notification: UILocalNotification) {JPUSHService.showLocalNotification(atFront: notification, identifierKey: nil)}override func applicationWillEnterForeground(_ application: UIApplication) {application.applicationIconBadgeNumber = 0application.cancelAllLocalNotifications()}override func applicationDidBecomeActive(_ application: UIApplication) {if UIDevice.deviceModelReadable() != "Simulator" {PgyUpdateManager.sharedPgy().checkUpdate(withDelegete: self, selector: #selector(updateVersion(_:)))}}deinit {o2ReachabilityManager.stopListening()}@available(iOS 10.0, *)func jpushNotificationCenter(_ center: UNUserNotificationCenter!, didReceive response: UNNotificationResponse!, withCompletionHandler completionHandler: (() -> Void)!) {let userInfo = response.notification.request.content.userInfolet request = response.notification.request // 收到推送的请求let content = request.content // 收到推送的消息内容let badge = content.badge // 推送消息的角标let body = content.body // 推送消息体let sound = content.sound // 推送消息的声音let subtitle = content.subtitle // 推送消息的副标题let title = content.title // 推送消息的标题if (response.notification.request.trigger?.isKind(of: UNPushNotificationTrigger.self))! {JPUSHService.handleRemoteNotification(userInfo)}else{//判断为本地通知O2Logger.debug("iOS10 前台收到本地通知:{\nbody:\(body),\ntitle:\(title),\nsubtitle:\(subtitle),\nbadge:\(badge ?? 0),\nsound:\(sound.debugDescription)")}completionHandler()}@available(iOS 10.0, *)func jpushNotificationCenter(_ center: UNUserNotificationCenter!, willPresent notification: UNNotification!,withCompletionHandler completionHandler: ((Int) -> Void)!) {let userInfo = notification.request.content.userInfolet request = notification.request // 收到推送的请求let content = request.content // 收到推送的消息内容let badge = content.badge // 推送消息的角标let body = content.body // 推送消息体let sound = content.sound // 推送消息的声音let subtitle = content.subtitle // 推送消息的副标题let title = content.title // 推送消息的标题if (notification.request.trigger?.isKind(of: UNPushNotificationTrigger.self))! {JPUSHService.handleRemoteNotification(userInfo)}else{//判断为本地通知O2Logger.debug("iOS10 前台收到本地通知:{\nbody:\(body),\ntitle:\(title),\nsubtitle:\(subtitle),\nbadge:\(badge ?? 0),\nsound:\(sound.debugDescription)")}completionHandler(Int(UNNotificationPresentationOptions.alert.rawValue|UNNotificationPresentationOptions.badge.rawValue|UNNotificationPresentationOptions.sound.rawValue))}@available(iOS 10.0, *)func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {}@available(iOS 10.0, *)func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {}@objc private func updateVersion(_ response:AnyObject?){O2Logger.debug("update be callbacked")if let obj = response {//ProgressHUD.dismiss()//print(obj)let appURLString = (obj as! NSDictionary)["downloadURL"]if let appURL = URL(string: appURLString as! String) {if UIApplication.shared.canOpenURL(appURL) {if UIApplication.shared.openURL(appURL) {PgyUpdateManager.sharedPgy().updateLocalBuildNumber()}}}}}}//MARK: - JMessage Delegateextension AppDelegate: JMessageDelegate {func onDBMigrateStart() {// self.showMessage(title: "数据库升级中")}func onDBMigrateFinishedWithError(_ error: Error!) {// self.showSuccess(title: "数据库升级完成")}func onReceive(_ event: JMSGNotificationEvent!) {switch event.eventType {case .receiveFriendInvitation, .acceptedFriendInvitation, .declinedFriendInvitation:cacheInvitation(event: event)case .loginKicked, .serverAlterPassword, .userLoginStatusUnexpected:_logout()case .deletedFriend, .receiveServerFriendUpdate:NotificationCenter.default.post(name: Notification.Name(rawValue: kUpdateFriendList), object: nil)default:break}}private func cacheInvitation(event: JMSGNotificationEvent) {let friendEvent = event as! JMSGFriendNotificationEventlet user = friendEvent.getFromUser()let reason = friendEvent.getReason()let info = JCVerificationInfo.create(username: user!.username, nickname: user?.nickname, appkey: user!.appKey!, resaon: reason, state: JCVerificationType.wait.rawValue)switch event.eventType {case .receiveFriendInvitation:info.state = JCVerificationType.receive.rawValueJCVerificationInfoDB.shareInstance.insertData(info)case .acceptedFriendInvitation:info.state = JCVerificationType.accept.rawValueJCVerificationInfoDB.shareInstance.updateData(info)NotificationCenter.default.post(name: Notification.Name(rawValue: kUpdateFriendList), object: nil)case .declinedFriendInvitation:info.state = JCVerificationType.reject.rawValueJCVerificationInfoDB.shareInstance.updateData(info)default:break}if UserDefaults.standard.object(forKey: kUnreadInvitationCount) != nil {let count = UserDefaults.standard.object(forKey: kUnreadInvitationCount) as! IntUserDefaults.standard.set(count + 1, forKey: kUnreadInvitationCount)} else {UserDefaults.standard.set(1, forKey: kUnreadInvitationCount)}NotificationCenter.default.post(name: Notification.Name(rawValue: kUpdateVerification), object: nil)}func _logout() {JMSGUser.logout(nil)JCVerificationInfoDB.shareInstance.queue = nilUserDefaults.standard.removeObject(forKey: kCurrentUserName)// let alertView = UIAlertView(title: "您的账号在其它设备上登录", message: "", delegate: self, cancelButtonTitle: "取消", otherButtonTitles: "重新登录")// alertView.show()}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。