Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用对象参数将javascript代码绑定到android代码_Javascript_Android_Web Applications_Webview_Android Webview - Fatal编程技术网

使用对象参数将javascript代码绑定到android代码

使用对象参数将javascript代码绑定到android代码,javascript,android,web-applications,webview,android-webview,Javascript,Android,Web Applications,Webview,Android Webview,正如标题所示,我正在尝试将javascript代码绑定到我的android应用程序,以便我可以在应用程序中对我的网站发送的事件/消息做出反应 在阅读了与javascript绑定相关的官方文章后,我设法轻松地实现了它。。只要是一根绳子 什么工作正常? 我在我的应用程序中实现了以下代码: /** Instantiate the interface and set the context */ class ClientInterface(private val mContext: Context)

正如标题所示,我正在尝试将javascript代码绑定到我的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而不是字符串,但它不起作用。 我试着铸造我认为可能有用的一切。。JSONObject/JSONObject?/有吗对象/对象?等等

当我在javascript上发送对象时,似乎什么都不起作用。我在我的应用程序中得到的只是一个空响应

有人试过这样的东西吗?我错过了什么

附:以下是我的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));

尝试使用Json.stringify(obj)从javascript返回Json对象;并在Android代码中以字符串形式接收,然后将其解析为对象。您是否在webview中将ClientInterface类注册为JSInterface?@Theude Yup。是的,你确定这不可能吗?它写在哪里了?有记录吗?是的,我确定,试试看。