2012-05-11 17 views
5

Czy można ręcznie zatrzymać aplikację Android PhoneGap? Muszę wstrzymać aplikację i przejść do tła, gdy ktoś kliknie przycisk. Użyłem navigator.app.exitApp();, ale to całkowicie zamyka aplikację. Nie chcę zamykać aplikacji po prostu rozładuj, tak jak dzieje się to z natywnym przyciskiem wstecz. Proszę, dziękuję.Ręczne wstrzymywanie aplikacji w systemie Android Phonegap

+0

Co masz na myśli z przerwą? Może zajrzyj do Activites Lifecircle, ponieważ nie jestem pewien, co próbujesz osiągnąć :) http://developer.android.com/guide/topics/fundamentals/activities.html – yoshi

+0

Muszę wstrzymać/zatrzymać aktywność (Aplikacja nie powinna być widoczna w forground), a aplikacja nie powinna być widoczna, gdy klikniemy przycisk powrotu, ukryje aplikację. –

+1

Zasadniczo chcesz zachować takie samo zachowanie, jakby ktoś nacisnął przycisk Początek? –

Odpowiedz

1

w waszym Javascript:

// HomeButton 
cordova.define("cordova/plugin/homebutton", function (require, exports, module) { 
    var exec = require("cordova/exec"); 
    module.exports = { 
     show: function (win, fail) { 
      exec(win, fail, "HomeButton", "show", []); 
     } 
    }; 
}); 

I:

// HomeButton 
function homeButton() { 
    var home = cordova.require("cordova/plugin/homebutton"); 
    home.show(
     function() { 
      console.info("PhoneGap Plugin: HomeButton: callback success"); 
     }, 
     function() { 
      console.error("PhoneGap Plugin: HomeButton: callback error"); 
     } 
    ); 
} 

W Javie na Android Native:

package org.apache.cordova.plugins; 

import org.apache.cordova.api.CallbackContext; 
import org.apache.cordova.api.CordovaPlugin; 
import org.apache.cordova.api.PluginResult; 
import org.json.JSONArray; 

import android.content.Intent; 
import android.util.Log; 

public class HomeButton extends CordovaPlugin { 

    public static final String LOG_PROV = "PhoneGapLog"; 
    public static final String LOG_NAME = "HomeButton Plugin"; 

    @Override 
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) { 
     Log.d(LOG_PROV, LOG_NAME + ": Simulated home button."); 
     Intent i = new Intent(Intent.ACTION_MAIN); 
     i.addCategory(Intent.CATEGORY_HOME); 
     this.cordova.startActivityForResult(this, i, 0); 
     callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK)); 
     return true; 
    } 

} 

Nazwać z:

homeButton(); 

To działa, i jest częścią repo kopalni: https://github.com/teusinkorg/jpHolo/

+0

Dzięki, działa jak magia –

3

Oto rozwiązanie, które jest podobne do odpowiedzi Joram Teusink, ale łatwiej, bo nie trzeba ręcznie edytować kod javy - wystarczy zainstalować wtyczkę z phiegap/cordova CLI.

Wtyczka ma jedną funkcję: goHome(). Jeśli to nazwiesz, aplikacja zostanie wstrzymana - podobnie jak naciśnięcie przycisku głównego.

Zastosowanie:

navigator.Backbutton.goHome(function() { 
    console.log('success - the app will now pause') 
}, function() { 
    console.log('fail') 
}); 

Montaż:

PhoneGap wtyczki lokalny dodać https://github.com/mohamed-salah/phonegap-backbutton-plugin.git

oto strona GitHub:

https://github.com/mohamed-salah/phonegap-backbutton-plugin.git

Powiązane problemy