Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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中注入一个可以被称为构造函数的JS对象?_Javascript_Android Webview_Qtwebkit - Fatal编程技术网

Javascript 如何在Android中注入一个可以被称为构造函数的JS对象?

Javascript 如何在Android中注入一个可以被称为构造函数的JS对象?,javascript,android-webview,qtwebkit,Javascript,Android Webview,Qtwebkit,我需要实现一个JS对象并像这样使用它(JavaScript代码): 这在QtWebkit中很好,我就是这样注入这个JS对象的(C++代码): 我想将此模块移植到Android,并尝试使用WebView:addJavascriptInterface()将其注入Android中的WebView。不知何故,它不能像这样用作构造函数: var mp = new MediaPlayer(); 结果总是未定义的 我如何在Android中像在QtWebKit中一样工作 非常感谢。它在Android上不是这样

我需要实现一个JS对象并像这样使用它(JavaScript代码):

这在QtWebkit中很好,我就是这样注入这个JS对象的(C++代码):

我想将此模块移植到Android,并尝试使用WebView:addJavascriptInterface()将其注入Android中的WebView。不知何故,它不能像这样用作构造函数:

var mp = new MediaPlayer();
结果总是未定义的

我如何在Android中像在QtWebKit中一样工作


非常感谢。

它在Android上不是这样工作的

当您将JavaScript对象注入Android的webview时,Java对象的一个实例绑定到JavaScript
窗口
对象

例如:

WebView.addJavaScriptInterface(new Object() { ... }, "mediaPlayer");
将允许您通过JavaScript中的
window.mediaPlayer
调用Java对象上的Java方法


我使用这个WebView.addJavaScriptInterface()将JS对象注入Android的WebView。问题是注入的对象不能用作构造函数,如:var mp=new MediaPlayer();正如我所说的,恐怕这是我们的初衷。它不是那样工作的。
var mp = new MediaPlayer();
WebView.addJavaScriptInterface(new Object() { ... }, "mediaPlayer");