From 6d85f86944fa3c37f306aad8b979d59e8f4decc7 Mon Sep 17 00:00:00 2001 From: Azuma Kasumi Date: Fri, 28 Oct 2022 12:23:47 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=E5=88=9D=E5=9B=9E=E3=82=BF=E3=83=96?= =?UTF-8?q?=E8=A1=A8=E7=A4=BA=E6=99=82=E3=81=AFviewDidLoad=E3=81=AE?= =?UTF-8?q?=E3=81=BF=E3=81=A7session=E3=82=92=E5=8F=96=E5=BE=97=E3=81=99?= =?UTF-8?q?=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WebView/View/WebViewController.swift | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/AgileWorks/AgileWorks/WebView/View/WebViewController.swift b/AgileWorks/AgileWorks/WebView/View/WebViewController.swift index eae82e9..2fe1f35 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"] @@ -206,7 +206,7 @@ class WebViewController: UIViewController { return } let sessionEndpoint = GetSessionEndpoint() - + Session.send(sessionEndpoint) { result in switch result { // セッション情報取得成功 @@ -216,7 +216,7 @@ class WebViewController: UIViewController { // 画面ロード DispatchQueue.main.async { self.loadWebView(url: self.loadURL) - self.initLoadComp = true + self.drawingComp = true } } else { // Cookie 変更 @@ -291,7 +291,7 @@ class WebViewController: UIViewController { } } AppDelegate.appShared.setOnlineStatus(isOnline: false) - self?.initLoadComp = false + self?.drawingComp = false } } // モニタリングスタート @@ -376,16 +376,18 @@ class WebViewController: UIViewController { func reloadWebView(sameTab: Bool) { var viewReload = 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 + } } } } else { -- GitLab From 44e11c6fccc3faefacdccb83ca0e2775623e53c6 Mon Sep 17 00:00:00 2001 From: Azuma Kasumi Date: Wed, 2 Nov 2022 10:44:25 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=E3=83=8D=E3=83=83=E3=83=88=E3=83=AF?= =?UTF-8?q?=E3=83=BC=E3=82=AF=E3=82=A8=E3=83=A9=E3=83=BC=E5=9B=9E=E9=81=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Main/View/MainTabBarViewController.swift | 17 ------- .../WebView/View/WebViewController.swift | 51 ++++++++++++------- 2 files changed, 33 insertions(+), 35 deletions(-) diff --git a/AgileWorks/AgileWorks/Main/View/MainTabBarViewController.swift b/AgileWorks/AgileWorks/Main/View/MainTabBarViewController.swift index 2de52fa..e4df9c0 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 2fe1f35..6f488f7 100644 --- a/AgileWorks/AgileWorks/WebView/View/WebViewController.swift +++ b/AgileWorks/AgileWorks/WebView/View/WebViewController.swift @@ -69,7 +69,7 @@ class WebViewController: UIViewController { //アプリからタブを開く if !openByWidget { - self.updateSession(isInit: true) + self.updateSession(isInit: true, showError: true) } // ネットワークオフラインView関連セットアップ self.setDisconnectView() @@ -200,18 +200,19 @@ class WebViewController: UIViewController { } // token チェック - func updateSession(isInit: Bool) { + func updateSession(isInit: Bool, showError: Bool) { print("updteSession") if !AppDelegate.appShared.getOnlineStatus() { return } let sessionEndpoint = GetSessionEndpoint() - + Session.send(sessionEndpoint) { result in switch result { // セッション情報取得成功 case .success(let response): KeychainDataStore().writeSessionID(sessionID: response.sessionId) + setStringsName(language: response.user.displayLanguage) if isInit { // 画面ロード DispatchQueue.main.async { @@ -219,6 +220,13 @@ class WebViewController: UIViewController { 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) + } } } } @@ -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,6 +385,7 @@ class WebViewController: UIViewController { // WebView Reload func reloadWebView(sameTab: Bool) { var viewReload = false + var updateSessionFlg = false if subViewStack.isEmpty { if nowURL != nil { if loadURL != nowURL { @@ -388,6 +399,7 @@ class WebViewController: UIViewController { } else if reloadTab { viewReload = true } + updateSessionFlg = true } } } else { @@ -403,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: "") -- GitLab