我需要实现一个JS对象并像这样使用它(JavaScript代码):
var mp = new MediaPlayer();
在QtWebkit中很好,这是我注入这个JS对象(C ++代码)的方式:
static JSClassDefinition SomeClassDefinition = {
.....
callAsConstructor: SomeClassCallAsConstructor,
.....
}
webview->addToJavaScriptWindowObject( context, "SomeObject", & SomeClassDefinition );
我想将此模块移植到Android,我尝试使用WebView:addJavascriptInterface()将此注入到Android中的WebView中。不知何故,它不能用作这样的构造函数:
var mp = new MediaPlayer();
结果始终未定义。
如何像在QtWebKit中一样在Android中完成这项工作?
非常感谢。
答案 0 :(得分:0)
这不是它在Android上的运作方式。
将JavaScript对象注入Android的webview时,Java对象的实例将绑定到javaScript window
对象。
例如:
WebView.addJavaScriptInterface(new Object() { ... }, "mediaPlayer");
允许您通过JavaScript中的window.mediaPlayer
在Java对象上调用Java方法。