commit 479eadc368cccbd87be63c23e9126537b98b7634 parent 256c0e131f70d3cab4c751d1431e7568a35f908d Author: Marc Stibane <marc@taler.net> Date: Mon, 13 May 2024 21:53:25 +0200 addingPercentEncoding Diffstat:
| M | TalerWallet1/Views/Sheets/QRSheet.swift | | | 14 | +++++++++++++- |
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/TalerWallet1/Views/Sheets/QRSheet.swift b/TalerWallet1/Views/Sheets/QRSheet.swift @@ -12,12 +12,24 @@ struct QRSheet: View { let stack: CallStack @State private var scannedCode: String? + func codeToURL(_ code: String) -> URL? { + if let scannedURL = URL(string: code) { + return scannedURL + } + if let encodedScan = code.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) { + if let encodedURL = URL(string: encodedScan) { + return encodedURL + } + } + return nil + } + var body: some View { Group { if scannedCode != nil { // let _ = print(scannedCode as Any) // TODO: logging - if let scannedURL = URL(string: scannedCode!) { + if let scannedURL = codeToURL(scannedCode!) { let scheme = scannedURL.scheme if scheme?.lowercased() == "taler" { URLSheet(stack: stack.push(), urlToOpen: scannedURL)