2012-05-11 32 views
5

Bạn có thể tạm dừng ứng dụng Android PhoneGap theo cách thủ công không? Tôi cần tạm dừng ứng dụng và chuyển sang nền khi ai đó nhấp vào nút. Tôi đã sử dụng navigator.app.exitApp(); nhưng hoàn toàn đóng ứng dụng. Tôi không muốn đóng ứng dụng vừa tải xuống giống như được thực hiện với nút quay lại gốc. Xin vui lòng giúp đỡ, cảm ơn.Tạm dừng ứng dụng theo cách thủ công trong Android Phonegap

+0

Ý anh là gì với tạm dừng? Có thể có một cái nhìn tại Activites Lifecircle gây ra tôi không chắc chắn những gì bạn cố gắng đạt được :) http://developer.android.com/guide/topics/fundamentals/activities.html – yoshi

+0

Tôi cần phải tạm dừng/ngừng hoạt động (Ứng dụng sẽ không hiển thị trong forground) và ứng dụng sẽ không hiển thị như khi chúng ta nhấp vào nút quay lại gốc, ứng dụng sẽ ẩn ứng dụng. –

+1

Về cơ bản, bạn muốn có hành vi tương tự như khi ai đó nhấn nút Home chính xác? –

Trả lời

1

Trong Javascript của bạn:

// 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", []); 
     } 
    }; 
}); 

Và:

// 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"); 
     } 
    ); 
} 

Trong Java trên 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; 
    } 

} 

Gọi nó với:

homeButton(); 

Nó hoạt động, và là một phần của một repo của tôi: https://github.com/teusinkorg/jpHolo/

+0

Cảm ơn, Nó hoạt động như ma thuật –

3

Đây là một giải pháp tương tự như câu trả lời của Joram Teusink, nhưng dễ dàng hơn vì bạn không cần phải chỉnh sửa mã java theo cách thủ công - chỉ cần cài đặt plugin phonegap/cordova CLI.

Chức năng plugin một: goHome(). Nếu bạn gọi điều này, ứng dụng sẽ tạm dừng - giống như nhấn nút trang chủ.

Cách sử dụng:

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

Cài đặt:

PhoneGap Plugin địa phương thêm https://github.com/mohamed-salah/phonegap-backbutton-plugin.git

Dưới đây là các trang github:

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

Các vấn đề liên quan