小编Qui*_*Fix的帖子

menubutton升级到cordova 5 + cordova android 4.0.0后不再工作了

我最近升级到cordova 5并在4.0.0版本中移除/重新创建了android平台并卸载/重新安装了所有插件.

我还必须将android sdk升级到sdk 22而不是21.

自更新以来,我不再能够捕获cordova文档中描述的menubutton事件.

由于它仍然在边缘文档中引用,我认为它应该仍然有效,我在发行说明中没有看到这一点.

后退按钮仍然有效.

我试图将target-sdk设置为19,它没有解决任何问题.

编辑: 我已经挖掘了cordova源代码并在CordovaWebViewImpl.java中找到了我发现了一个可疑的TODO评论:

   public void setButtonPlumbedToJs(int keyCode, boolean override) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_VOLUME_DOWN:
            case KeyEvent.KEYCODE_VOLUME_UP:
            case KeyEvent.KEYCODE_BACK:
                // TODO: Why are search and menu buttons handled separately?
                if (override) {
                    boundKeyCodes.add(keyCode);
                } else {
                    boundKeyCodes.remove(keyCode);
                }
                return;
            default:
                throw new IllegalArgumentException("Unsupported keycode: " + keyCode);
        }
    }
Run Code Online (Sandbox Code Playgroud)

好吧,我的答案是"它不应该!!!!"

Cordova列出了要处理的密钥代码,但没有添加菜单按钮,稍后只有在跳过密钥代码后才将密钥代码与KeyEvent.KEYCODE_MENU进行比较,因为它不在列表中.

我试图为菜单按钮添加一个案例,但事实证明只使用后退按钮的代码调用该函数.

所以现在我知道为什么它不起作用但仍然没有如何解决它.

编辑02/2016: 根据最新的Jira,menubutton的支持现在在Cordova Android 5.1.0的java部分修复,但仍然没有从javascript初始化.目前,如Jira用户Keith Wong所示,您需要在添加事件侦听器之前添加javascript调用:

document.addEventListener("deviceready", function() {
    ...
    navigator.app.overrideButton("menubutton", true);  // <-- Add this …
Run Code Online (Sandbox Code Playgroud)

android cordova

11
推荐指数
1
解决办法
1901
查看次数

在远程Mac上通过ssh构建cordova应用程序

我一直在我的Windows PC上本地构建Android Phonegap应用程序,并使用Phonegap Build来构建IOS应用程序.

设计人员有一台我们已经用于在iTunes中发布应用程序的Mac.

但即使Phonegap构建是一个很好的工具,也存在许多缺点:构建时间有时可能很长,并非所有插件都可用,插件提交似乎有时很长并且并不总是成功,使用Phonegap构建调试自制插件似乎是不可能的.

出于所有这些原因,我觉得有必要在本地构建IOS项目,也可能开发本机插件.

所以我的想法是使用ssh连接到Designer的Mac并使用它来构建.

其他人以这种方式处理吗?会有用吗?在安装CLI,sdk和其他工具时,我应该注意哪些事项?

例如,我认为在我用于SSH的用户本地安装npm是个好主意.

有任何想法吗?

macos ssh ios cordova

9
推荐指数
1
解决办法
1685
查看次数

防止在Android webview上的jquerymobile中滑动时触发tap事件

我有一个使用jQuery Mobile 1.4和Backbone.js的Phonegap 3应用程序.

在这个应用程序中,我使用'swipeleft'和'swiperight'事件来显示表单的不同部分(滑动显示上一个/下一个div).

这很好但我的问题是,如果我用手指在复选框顶部滑动,复选框会在触发滑动之前接收点击事件,因此复选框状态会更改.

我也看到了其他小部件,但复选框似乎足以解释这个问题.

我在桌面计算机上没有chrome的问题,也没有在Kitkat中使用新的chrome webview,但在Gingerbread和Jelly Bean(旧的webkit webview)中遇到了问题.

我在事件处理函数中停止了滑动事件的传播,但由于之前触发了"不需要的"点击,因此没有太大影响......

我可以采取哪些措施来避免在Android网页浏览中滑动时触发点击事件?

android webview swipe jquery-mobile cordova

7
推荐指数
1
解决办法
923
查看次数

标签 统计

cordova ×3

android ×2

ios ×1

jquery-mobile ×1

macos ×1

ssh ×1

swipe ×1

webview ×1