0

app.js

if (osname === 'android') {
    Window = require('ui/handheld/android/SignIn');
}
else {
    Window = require('ui/handheld/SignIn');
}

new Window().open();

SignIn.js

function SignIn() {
    var self = Ti.UI.createWindow();
    //Some design and sign-in validation code
    ...
    var StatusMain = require('/ui/handheld/android/StatusMain');
    new StatusMain(global_vars).open();
    return self;
}

StatusMain.js

function StatusMain(global_vars) {
    var self = Ti.UI.createWindow();
        return self;
}

StatusMain.jsで、画面デバイスの戻るボタンをクリックすると、 SignIn.js画面に戻る代わりにAPPが終了します

どんな助けでも非常に高く評価されます!

前もって感謝します、

モーシン

4

4 に答える 4

7

コードでこのような戻るボタンイベントを処理できます

window.addEventListener('android:back', function(){
    // close your current window
});
于 2012-12-16T16:24:30.427 に答える
2

新しいウィンドウを作成するときは、(Android固有の)exitOnCloseプロパティをfalseに設定することをお勧めします。

http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Window-property-exitOnClose

exitOnClose:ブール値の作成のみ

ウィンドウが表示されているときにAndroidの[戻る]ボタンが押されたときにアプリケーションを終了するかどうかを示すブール値。

これは、createWindow({...})オプションとしてのみ設定できます。>ウィンドウ作成後に設定しても効果はありません。

StatusMain.js

function StatusMain(global_vars) {
    var self = Ti.UI.createWindow({
        exitOnClose: false
    });
        return self;
}

それでうまくいくはずです。デフォルト値はfalseですが、問題はそれと関係があるようです。このプロパティをtrue/falseに設定してみることをお勧めします。

アドバイスとして、まだテストしていない場合は、デバイスでアプリをテストする必要があります。Androidエミュレーターでの私の経験は、いくつかの点でかなり一貫性がありません。

于 2012-12-16T16:29:11.177 に答える
1

StatusMainは軽量ウィンドウです。新しいAndroidアクティビティは作成されませんが、代わりにサインインウィンドウアクティビティと共有されます。そのため、戻るボタンを押すとアプリが閉じます。StatusMainウィンドウに(フルスクリーンまたはnavBarHiddenプロパティを指定して)ヘビーウェイトウィンドウを作成する必要があります。

于 2013-04-19T01:24:01.187 に答える
0

新しいウィンドウのモーダルプロパティをtrueに設定します。

function StatusMain(global_vars) {
        var self = Ti.UI.createWindow({
        modal: true
    });
    return self;
}
于 2012-12-25T00:05:36.693 に答える