Как видно из названия, я пытаюсь привязать код javascript к своему приложению для Android, чтобы в своем приложении я мог реагировать на событие / сообщение, отправляемое моим веб-сайтом.
После прочтения официальной документации для Android , связанной с привязкой javascript, мне удалось легко реализовать ее ... до тех пор, пока она является строкой.
Что работает нормально?
Я реализовал следующий код в моем приложении:
/** Instantiate the interface and set the context */
class ClientInterface(private val mContext: Context) {
/** Show a toast from the web page */
@JavascriptInterface
fun postMessage(message: String) {
Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show()
}
}
если параметром функции postMessage является строка, и я передаю строку из моего JavaScript в качестве параметра, все в порядке. это передает строку.
Моя проблема в том, что я пытаюсь получить JSONObject вместо String, и он не работает.
Я пытался разыграть все, что, как я думал, могло бы работать .. JSONObject / JSONObject? / Любой / Любой? / Объект Object? и так далее ..
когда я отправляю объект в моем javascript, кажется, ничего не работает. все, что я получаю в своем приложении - это пустой ответ.
кто-нибудь пробовал что-то подобное? что мне не хватает?
P.S. вот мой код JavaScript для справки:
var objectMessage = {
type: "quote",
code: "My name is Inigo Montoya. You killed my father, prepare to die!"
}
window.CLIENT.postMessage(objectMessage);