Sencha Touch - Windows Phone 8 Phonegap 应用程序栏不隐藏在后退按钮单击

Posted

技术标签:

【中文标题】Sencha Touch - Windows Phone 8 Phonegap 应用程序栏不隐藏在后退按钮单击【英文标题】:Sencha Touch - Windows Phone 8 Phonegap Application Bar not hiding on back button click 【发布时间】:2014-02-28 07:29:27 【问题描述】:

我们正在使用 Sencha touch 2 for Windows Phone 8 开发一个混合移动应用程序。 在开发过程中,我们注意到 windows phone 8 中的数字字段没有可用的键盘完成按钮。请参考下面的屏幕截图。

然后我们决定在 Windows Phone 8 中编写一个自定义应用程序栏 - 在 MainPage.cs 中的 Phonegap 应用程序,该应用程序栏内有一个完成按钮。请参阅下面的屏幕截图。

现在完成的功能可以正常工作,但是当我们单击设备的后退按钮时,键盘会隐藏,但应用程序栏仍保留在视图中,如下面的屏幕截图所示

我们尝试在 phonegap 中覆盖后退按钮功能,但是当显示键盘时,后退按钮单击只会触发第二次单击,第一次单击会隐藏键盘,第二次单击会触发被覆盖的功能。

有人可以提供一些替代方案或解决方案,说明如何在第一次单击后退按钮时将自定义应用程序栏与键盘一起隐藏?

【问题讨论】:

【参考方案1】:

在 MainPage.xaml.cs 添加下面提到的监听器,当键盘打开时在设备中按下返回按钮时监听事件。

当您调用特定插件以显示应用程序栏包含完成按钮时,并从 java 脚本传递一个字符串,通过使用它您可以确定在哪种情况下必须显示,而在其他情况下您可以隐藏栏。

cordova.exec(null, null, "Cordova.Extension.Commands.DoneButtonPlugin", "keyboardDoneShow", "Num");

cordova.exec(null, null, "Cordova.Extension.Commands.DoneButtonPlugin", "keyboardDoneHide", "输入字符串");

private void CordovaView_LayoutUpdated(object sender, EventArgs e)

        if (CordovaView.Content.DesiredSize.Height == 0)
        
            if(App.appBar.IsVisible)
                App.HideShell();
        
        else
        
            if (App.NumKey == "\"Num\"") 
                if(!App.appBar.IsVisible)
                    App.ShowShell();
                                
                               

    

【讨论】:

以上是关于Sencha Touch - Windows Phone 8 Phonegap 应用程序栏不隐藏在后退按钮单击的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch实战OA系统开发|Sencha Touch项目教程

Sencha Touch - Windows Phone 8 Phonegap 应用程序栏不隐藏在后退按钮单击

Sencha Touch 工作流程

在 Sencha Touch 2.2.1 中运行应用程序示例时出现 JavaScript 错误

Sencha Touch 2 和 PC 版 SDK

如何使用 sencha-touch.jsb3 构建 Sencha Touch?