【问题标题】:Android:back event for WebView in a tabbed application in AppceleratorAndroid:Appcelerator 中选项卡式应用程序中 WebView 的返回事件
【发布时间】:2011-08-24 10:49:06
【问题描述】:

我找不到使用选项卡窗口或该选项卡中的 WebView 捕获 android:back 事件的方法。

我有一个选项卡式应用程序,其中一个 TabGroup 充当根窗口。其中一个选项卡包含一个显示博客的 WebView。

为了在 Android 上实现导航,我尝试在 webview 本身和 Ti.UI.currentWindow 上设置 'android:back' 的事件侦听器,但似乎没有效果。按下后退按钮时应用程序关闭。

同时,Android documentation 建议应该可以在 WebView 中使用 KeyEvent.KEYCODE_BACK 接收 keyDown。

【问题讨论】:

  • 这些答案都不正确吗?

标签: android webview titanium appcelerator


【解决方案1】:

自从 1.5 发布对 android:back 事件的支持以来,这一直对我有用:

Ti.UI.currentWindow.addEventListener('android:back', function() { 
//do something 
});

【讨论】:

  • 阅读文档,您显示的代码应该可以工作。它对我不起作用:(
【解决方案2】:

你的窗口有exitOnClose: false吗?

来自 Ti.UI.window 对象文档:

"(仅限 Android。)布尔值指示在显示窗口时按下 Android 后退按钮时应用程序是否应退出。您只能将其设置为 createWindow({...}) 选项。设置后窗口创建将无效。”

【讨论】:

    【解决方案3】:

    你可以试试这样的

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        if((keyCode == KeyEvent.KEYCODE_BACK) && (secondary_layout_is_displayed))
        {
            PrimaryLayout();
            // return true to let the system know we consumed the back button press
            return true;
        }
    
        // return the default value
        return super.onKeyDown(keyCode, event);
    }
    

    【讨论】:

    • 我正在使用 Titanium Appcelerator。不幸的是,它不会将 JavaScript 源代码交叉编译成 Java,而是在虚拟机中运行。
    猜你喜欢
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多