Merge pull request #2103 from RoboSats/refactor-android-app-messages

Refactor android app messages
This commit is contained in:
KoalaSat
2025-07-24 14:24:05 +00:00
committed by GitHub

View File

@ -319,14 +319,8 @@ class WebAppInterface(private val context: Context, private val webView: WebView
} }
private fun onWsMessage(path: String?, message: String?) { private fun onWsMessage(path: String?, message: String?) {
val escapedMessage = message val encodedMessage = encodeForJavaScript(message)
?.replace("\\", "\\\\") safeEvaluateJavascript("javascript:window.AndroidRobosats.onWSMessage('$path', '$encodedMessage')")
?.replace("'", "\\'")
?.replace("\"", "\\\"")
?.replace("\n", "\\n")
?.replace("\r", "\\r")
?.replace("\t", "\\t")
safeEvaluateJavascript("javascript:window.AndroidRobosats.onWSMessage('$path', '$escapedMessage')")
} }
private fun onWsError(path: String?) { private fun onWsError(path: String?) {
@ -386,12 +380,15 @@ class WebAppInterface(private val context: Context, private val webView: WebView
} }
} }
private fun encodeForJavaScript(input: String): String { private fun encodeForJavaScript(input: String?): String {
if (input == null) return ""
return input.replace("\\", "\\\\") return input.replace("\\", "\\\\")
.replace("'", "\\'") .replace("'", "\\'")
.replace("\"", "\\\"") .replace("\"", "\\\"")
.replace("\n", "\\n") .replace("\n", "\\n")
.replace("\r", "\\r") .replace("\r", "\\r")
.replace("\t", "\\t")
.replace("<", "\\u003C") .replace("<", "\\u003C")
.replace(">", "\\u003E") .replace(">", "\\u003E")
.replace("&", "\\u0026") .replace("&", "\\u0026")