taler-ios

iOS apps for GNU Taler (wallet)
Log | Files | Refs | README | LICENSE

commit 479eadc368cccbd87be63c23e9126537b98b7634
parent 256c0e131f70d3cab4c751d1431e7568a35f908d
Author: Marc Stibane <marc@taler.net>
Date:   Mon, 13 May 2024 21:53:25 +0200

addingPercentEncoding

Diffstat:
MTalerWallet1/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)