今まで問題なく下記のコードで Twitter
のURLを開くことが出来ていたのですが急に 404
のエラーを返すようになりました。
TwitterのURLは https://twitter.com/TwitterJP
などで余計な文字列は付与していません。
iOS13と14ともに同じ症状が出ます。
https://www.yahoo.co.jp/
や https://www.youtube.com/
とかは普通に見れます。
Twitterの方で何か処理が変わったのでしょうか。。
Webkitで Twitter
を正常に開きたいです。
それとも TwitterのURLは弾くしかないのでしょうか。。
import UIKit import WebKit class WebViewController: UIViewController, WKNavigationDelegate, UINavigationControllerDelegate, GADBannerViewDelegate var webView: WKWebView! var data: String = "" @IBOutlet weak var backButton: UIBarButtonItem! @IBOutlet weak var forwardButton: UIBarButtonItem! var toolbarHeight:CGFloat = 0 @IBOutlet weak var webPage: WKWebView! override func viewDidLoad() { super.viewDidLoad() webPage.navigationDelegate = self self.toolbarHeight = navigationController?.toolbar.frame.size.height as! CGFloat navigationController?.delegate = self self.navigationController?.setNavigationBarHidden(false, animated: true) self.navigationController?.navigationBar.isHidden = false self.navigationController?.isNavigationBarHidden = false let homeUrl = self.data openUrl(urlString: homeUrl) webPage.navigationDelegate = self } override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) self.navigationController?.setNavigationBarHidden(true, animated: true) self.navigationController?.navigationBar.isHidden = true self.navigationController?.isNavigationBarHidden = true } func openUrl(urlString: String) { var url = URL(string: urlString) // エラー用URL let redirectURL = URL(string: "https://test.com") URLSession.shared.dataTask(with: url!) { _, response, error in if let error = error as? URLError { if error.code == .unsupportedURL { url = redirectURL print("失敗①") } else { print(error.localizedDescription) return } } if let httpResponse = response as? HTTPURLResponse { switch httpResponse.statusCode { case 300..<399: print("失敗②") case 400: url = redirectURL print("400 Bad Requestです。") case 403: url = redirectURL print("403 Forbiddenです。") case 404: url = redirectURL print("404 Not Foundです。") case 408: url = redirectURL print("408 Request Timeoutです。") case 409..<500: url = redirectURL print("このエラーは409 -500系のものです。") default: break } } DispatchQueue.main.async { let request = URLRequest(url: url!) self.webPage.load(request) } }.resume() } func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) { backButton.isEnabled = false forwardButton.isEnabled = false } func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { backButton.isEnabled = webView.canGoBack forwardButton.isEnabled = webView.canGoForward } @IBAction func backButton(_ sender: Any) { webPage.goBack() } @IBAction func forwardButton(_ sender: Any) { webPage.goForward() } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。