2017-09-16 166 views

回答

0

有2情况下,你可能会感兴趣的:

  1. 过骑后退按钮按下的默认行为。

    $.window.onBack = function() { // run your code like change views or whatever you like };

    • 使用Window's onBack property附加后退按钮回调。
    • 您将控制在该窗口上按下后退按钮时应发生的情况。
  2. 如果你只是想听听备份按钮按下背部按下按钮的默认行为一起,使用Window's androidback event

    $.window.addEventListener('androidback', function (e){});

    • 注意,此方法仍然会关闭你的窗口,但将允许您运行在后退按钮按下一些代码。

我相信你正在寻找方法1.

注:方法1是唯一可用的后或> SDK 5.5.1.GA.这是6.0.0.GA的突破性变化。因此,请正确阅读文档&对其功能进行了一些测试。

增加了代码示例以模拟后退按钮功能。

Alloy.Globals.trackingArray = []; 

function addNewView(_controllerName, _args) { 
    var newView = Alloy.createController(_controllerName, _args).getView(); 
    $.window.add(newView); 

    // add new view in tracking array. 
    Alloy.Globals.trackingArray.push(_controllerName); 
} 

// now use something like this whenever you remove any view using backpress 
function onBackPress() { 
    // remove lastly added view 
    Alloy.Globals.trackingArray.pop(_controllerName); 

    // add last opened view to simulate back button feature 
    var lastAddedView = Alloy.Globals.trackingArray[Alloy.Globals.trackingArray.length - 1]; 

    var tempView = Alloy.createController(lastAddedView).getView(); 

    $.window.add(tempView); 
} 

这是如何管理此功能的基础。但是请注意,在创建新视图或控制器时,您需要照顾管理传递的参数。有多种方式可以做到这一点&这取决于你的编码风格。 :)

+0

我有一个窗口和处理后退按钮很容易。但是我在父窗口工作中添加的视图完全是不同的屏幕。处理这些视图的返回按钮是我不理解Prashant。你能帮我解决吗? – SylieC

+0

您需要设置'exitOnClose:false',然后您可以使用'androidback'事件来更改您的视图 – miga

+0

@SylieC,您需要创建一个自定义处理视图,您可以在该单个窗口中添加或删除视图。使用我的答案和自定义处理。例如。假设你在窗口中有view1,现在你设置了一个数组变量来跟踪添加的视图。当这个数组只有1个视图时,你将关闭窗口。请参阅我编辑的答案以获得更清晰的解释 –