Joz*_*eRi 13 javascript android web-applications webview android-webview
顾名思义,我正在尝试将javascript代码绑定到我的android应用,以便我可以在我的应用中对我的网站正在发送的事件/消息做出反应。
阅读了与javascript绑定相关的android官方文档后,我设法轻松实现了它。
什么工作正常?我在应用程序中实现了以下代码:
/** 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()
}
}
Run Code Online (Sandbox Code Playgroud)
如果'postMessage'函数的参数是一个字符串,并且我要从我的JavaScript中传递一个字符串作为参数,那么一切都很好。它传递字符串。我的问题是我正在尝试获取JSONObject而不是String,但它不起作用。我尝试投射所有我认为可能可行的东西。JSONObject / JSONObject吗?/任何/任何?/对象/对象?等等..
当我在javascript上发送对象时,似乎没有任何效果。我在应用程序中得到的只是一个空响应。
有人尝试过类似的东西吗?我想念什么?
PS-这是我的JavaScript代码供参考:
var objectMessage = {
type: "quote",
code: "My name is Inigo Montoya. You killed my father, prepare to die!"
}
window.CLIENT.postMessage(objectMessage);
Run Code Online (Sandbox Code Playgroud)
您不能仅传递原始对象!所以你需要对你的对象进行字符串化。
var objectMessage = {
type: "quote",
code: "My name is Inigo Montoya. You killed my father, prepare to die!"
}
window.CLIENT.postMessage(JSON.stringify(objectMessage));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
223 次 |
| 最近记录: |