patbef-iOS/Befund/Controls/WebView/WebViewController.swift

95 lines
2.7 KiB
Swift
Raw Permalink Normal View History

2024-01-29 16:20:42 +01:00
//
// WebViewController.swift
// Befund
//
// Created by Artur Savitskiy on 31.08.22.
// Copyright © 2022 MVZ Dr. Stein und Kollegen. All rights reserved.
//
import UIKit
import WebKit
protocol UpdatingParentCheckBox: AnyObject {
var confirmCheckBox: CheckBoxButton! {get}
}
class WebViewController: UIViewController {
private let webView: WKWebView = {
let preferences = WKPreferences()
preferences.javaScriptEnabled = true
let configuration = WKWebViewConfiguration()
configuration.preferences = preferences
let webView = WKWebView(frame: .zero, configuration: configuration)
return webView
}()
private let url: URL
private let localUrl: URL
private let btnDoneTitle: String
public var parentView: UpdatingParentCheckBox? = nil
init(url: URL, title: String, localUrl: URL)
{
self.url = url
self.btnDoneTitle = title
self.localUrl = localUrl
super.init(nibName: nil, bundle: nil)
}
required init?(coder: NSCoder)
{
fatalError()
}
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .systemBackground
view.addSubview(webView)
webView.load(URLRequest(url: url))
configurateButtons()
}
private func configurateButtons()
{
let btnDone = UIButton(frame: CGRect(x: 0, y: 0, width: self.view.frame.width-30, height: 45))
btnDone.setTitle(btnDoneTitle, for: .normal)
btnDone.titleLabel?.lineBreakMode = NSLineBreakMode.byWordWrapping
btnDone.titleLabel?.textAlignment = .center
btnDone.backgroundColor = UIColor(red: 153/255, green: 19/255, blue: 85/255, alpha: 1)
btnDone.setTitleColor(.white, for: .normal)
btnDone.layer.cornerRadius = 5
btnDone.clipsToBounds = true
btnDone.addTarget(self, action: #selector(didTapAccept), for: .touchUpInside)
let barButton = UIBarButtonItem(customView: btnDone)
navigationItem.leftBarButtonItem = barButton
}
@objc private func didTapAccept()
{
if (parentView!.confirmCheckBox != nil)
{
parentView!.confirmCheckBox.setChecked(flag: true)
let settings = Core.Models.Settings.loadFromFile(atPath: Core.System.SettingsPath())
if (!settings!.policyAGBExplained)
{
settings!.policyAGBExplained = true
_ = settings!.save(atPath: Core.System.SettingsPath())
}
}
dismiss(animated: true, completion: nil)
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
webView.frame = view.bounds
}
}