如标题所示,我正在尝试将 javascript 代码绑定(bind)到我的 Android 应用程序,以便我可以在我的应用程序中对我的网站发送的事件/消息使用react。
看完官方android documentation与 javascript 绑定(bind)相关,我设法轻松实现了它。只要它是一个字符串。
什么工作正常? 我在我的应用程序中实现了以下代码:
/** 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?/任何/任何?/对象/对象?等等..
当我在我的 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);
最佳答案
你不能只传递原始对象! 所以你需要对你的对象进行字符串化。
var objectMessage = {
type: "quote",
code: "My name is Inigo Montoya. You killed my father, prepare to die!"
}
window.CLIENT.postMessage(JSON.stringify(objectMessage));
关于javascript - 使用对象参数将javascript代码绑定(bind)到android代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56631152/