diff --git a/AgileWorks/AgileWorks/Main/View/MainTabBarViewController.swift b/AgileWorks/AgileWorks/Main/View/MainTabBarViewController.swift index 2de52faab9322488a840234a8020a86a9747b35f..e4df9c02d152f48b4439b464430ecd5bcaca17a7 100644 --- a/AgileWorks/AgileWorks/Main/View/MainTabBarViewController.swift +++ b/AgileWorks/AgileWorks/Main/View/MainTabBarViewController.swift @@ -137,22 +137,5 @@ extension MainTabBarViewController: UITabBarControllerDelegate { selectedTabIndex = tabBarController.selectedIndex } } - // 多言語対応 - let sessionEndpoint = GetSessionEndpoint() - - Session.send(sessionEndpoint) { result in - switch result { - // セッション情報取得成功 - case .success(let response): - setStringsName(language: response.user.displayLanguage) - // 固定文言再設定 - DispatchQueue.main.async { - self.setupFixedWording() - } - // セッション情報取得失敗 - case .failure(let error): - log.e(error) - } - } } } diff --git a/AgileWorks/AgileWorks/WebView/View/WebViewController.swift b/AgileWorks/AgileWorks/WebView/View/WebViewController.swift index eae82e9cae950daa08e5e0cfdf4fdcb9102afd5a..6f488f703a9a1918b31b7956bd1437253c5c02dc 100644 --- a/AgileWorks/AgileWorks/WebView/View/WebViewController.swift +++ b/AgileWorks/AgileWorks/WebView/View/WebViewController.swift @@ -37,8 +37,8 @@ class WebViewController: UIViewController { var tabTitleKey: String! // 現在表示中のURL var nowURL: String! - // 初期ロード完了フラグ - var initLoadComp = false + // 描画完了フラグ + var drawingComp = false // 書類表示時 URL let docUrl: [String] = ["Mobile#docDetail", "#docDetail"] @@ -69,7 +69,7 @@ class WebViewController: UIViewController { //アプリからタブを開く if !openByWidget { - self.updateSession(isInit: true) + self.updateSession(isInit: true, showError: true) } // ネットワークオフラインView関連セットアップ self.setDisconnectView() @@ -200,7 +200,7 @@ class WebViewController: UIViewController { } // token チェック - func updateSession(isInit: Bool) { + func updateSession(isInit: Bool, showError: Bool) { print("updteSession") if !AppDelegate.appShared.getOnlineStatus() { return @@ -212,13 +212,21 @@ class WebViewController: UIViewController { // セッション情報取得成功 case .success(let response): KeychainDataStore().writeSessionID(sessionID: response.sessionId) + setStringsName(language: response.user.displayLanguage) if isInit { // 画面ロード DispatchQueue.main.async { self.loadWebView(url: self.loadURL) - self.initLoadComp = true + self.drawingComp = true } } else { + if self.loadURL == self.nowURL { + DispatchQueue.main.async { + if let mainTabBarVC = self.parent?.parent as? MainTabBarViewController { + mainTabBarVC.setupFixedWording() + } + } + } // Cookie 変更 self.setSessionId() } @@ -242,19 +250,21 @@ class WebViewController: UIViewController { break } // リフレッシュトークン更新エラーの場合 - if refreshError { - DispatchQueue.main.async { - let title = getDisplayString(key: "RefreshTokenUpdateErrorTitle", comment: "") - let message = getDisplayString(key: "RefreshTokenUpdateError", comment: "") - let defaultAction = AppDelegate.shared.rootViewController.logoutDefaultAction(title: getDisplayString(key: "OK", comment: "")) - AppDelegate.shared.rootViewController.showAlertScreen(view: self, title: title, message: message, defaultAction: defaultAction, cancelAction: nil) - } - // その他エラーの場合 - } else { - DispatchQueue.main.async { - let message = getDisplayString(key: "UnknownNetworkError", comment: "") - let defaultAction = UIAlertAction(title: getDisplayString(key: "OK", comment: ""), style: .default) { _ in } - AppDelegate.shared.rootViewController.showAlertScreen(view: self, title: "", message: message, defaultAction: defaultAction, cancelAction: nil) + if showError { + if refreshError { + DispatchQueue.main.async { + let title = getDisplayString(key: "RefreshTokenUpdateErrorTitle", comment: "") + let message = getDisplayString(key: "RefreshTokenUpdateError", comment: "") + let defaultAction = AppDelegate.shared.rootViewController.logoutDefaultAction(title: getDisplayString(key: "OK", comment: "")) + AppDelegate.shared.rootViewController.showAlertScreen(view: self, title: title, message: message, defaultAction: defaultAction, cancelAction: nil) + } + // その他エラーの場合 + } else { + DispatchQueue.main.async { + let message = getDisplayString(key: "UnknownNetworkError", comment: "") + let defaultAction = UIAlertAction(title: getDisplayString(key: "OK", comment: ""), style: .default) { _ in } + AppDelegate.shared.rootViewController.showAlertScreen(view: self, title: "", message: message, defaultAction: defaultAction, cancelAction: nil) + } } } } @@ -291,7 +301,7 @@ class WebViewController: UIViewController { } } AppDelegate.appShared.setOnlineStatus(isOnline: false) - self?.initLoadComp = false + self?.drawingComp = false } } // モニタリングスタート @@ -311,7 +321,7 @@ class WebViewController: UIViewController { DispatchQueue.main.async { // token チェック - self.updateSession(isInit: false) + self.updateSession(isInit: false, showError: true) } // 画面リロードチェック self.isShowDoc = false @@ -375,17 +385,21 @@ class WebViewController: UIViewController { // WebView Reload func reloadWebView(sameTab: Bool) { var viewReload = false + var updateSessionFlg = false if subViewStack.isEmpty { - if loadURL != nowURL { - viewReload = true - } else if !initLoadComp { - viewReload = true - initLoadComp = true - } else { - if !sameTab { + if nowURL != nil { + if loadURL != nowURL { viewReload = true - } else if reloadTab { + } else if !drawingComp { viewReload = true + drawingComp = true + } else { + if !sameTab { + viewReload = true + } else if reloadTab { + viewReload = true + } + updateSessionFlg = true } } } else { @@ -401,8 +415,11 @@ class WebViewController: UIViewController { } loadWebView(url: self.loadURL) } + if updateSessionFlg { + updateSession(isInit: false, showError: false) + } } - //ログイン画面の固定文言表示 + //タブの固定文言表示 func setupFixedWording() { self.navigationItem.title = getDisplayString(key: tabTitleKey, comment: "") disconnectLabel.text = getDisplayString(key: "DisconnectNetworkLabel", comment: "")