Skip to content

Commit

Permalink
Fix character escaping (#529)
Browse files Browse the repository at this point in the history
* Fix character escaping

* Update MiniAppViewHandler.swift

* Update MiniAppViewHandler.swift

* Update MiniAppViewHandler.swift
  • Loading branch information
rleojoseph authored Oct 16, 2023
1 parent 9118a3a commit 2fccc8b
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion Sources/Classes/core/View/MiniAppViewHandler.swift
Original file line number Diff line number Diff line change
Expand Up @@ -831,7 +831,11 @@ extension MiniAppViewHandler: MiniAppCallbackDelegate {
}

func didReceiveEvent(_ event: MiniAppEvent, message: String) {
let messageBody = Constants.JavaScript.eventCallback + "('\(event.rawValue)'," + "'\(message)')"
var encodedMessage = message
if event == .miniappReceiveJsonString {
encodedMessage = message.base64Encoded() ?? ""
}
let messageBody = Constants.JavaScript.eventCallback + "('\(event.rawValue)'," + "'\(encodedMessage)')"
messageBodies.append(messageBody)
MiniAppLogger.d(messageBody, "♨️️")
webView?.evaluateJavaScript(messageBody)
Expand Down Expand Up @@ -932,4 +936,11 @@ extension MiniAppViewHandler {
self.didReceiveEvent(MiniAppEvent.miniappReceiveJsonString, message: jsonString ?? "")
}
}

extension String {
func base64Encoded() -> String? {
guard let data = data(using: .nonLossyASCII) else { return "" }
return data.base64EncodedString()
}
}
// swiftlint:enable file_length function_body_length

0 comments on commit 2fccc8b

Please sign in to comment.