Mar*_*ark 6 javascript android cordova
我正在编写一个本机插件,用于在键盘显示时用JavaScript引发事件.我这样做:
appView.sendJavascript("cordova.fireWindowEvent('show_keyboard')")
Run Code Online (Sandbox Code Playgroud)
在我的JavaScript中,我做了类似的事情:
window.addEventListener('show_keyboard', handler);
Run Code Online (Sandbox Code Playgroud)
然而,这一点已经被PhoneGap专家称为PhoneGap中的一个重要的禁忌.这种方法有什么问题?
寻找来自可靠和/或官方来源的答案。
好吧,我也不是 PhoneGap 专家,但是为 PhoneGap 提供支持的引擎Apache Cordova在 GitHub 上有其源代码。
好吧,作为一个例子,让我们看看 Cordova 如何发送它的volumedownbuttonevent。我展示了CordovaWebView.java 的第 613-621 行:
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
this.loadUrl("javascript:cordova.fireDocumentEvent('volumedownbutton');");
return true;
}
// If volumeup key
else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
this.loadUrl("javascript:cordova.fireDocumentEvent('volumeupbutton');");
return true;
}
Run Code Online (Sandbox Code Playgroud)
Cordova 似乎采用了类似的方法将事件发送到 JavaScript。
我不确定您的同事提出的确切问题是什么,但似乎确实已被sendJavascript弃用。所以,就是这样。但是,如果您appView是 a CordovaWebView,则可以loadUrl按照 Cordova 本身的相同方式进行调用(如上所示)。
| 归档时间: |
|
| 查看次数: |
1428 次 |
| 最近记录: |