2013-03-18 23 views
23

Telefon hafızam uygulamasını nasıl programlanabilir şekilde yeniden başlatabilirim? Navigator.app.exitApp() aracılığıyla kolayca uygulamadan çıkıyorum, ancak hemen yeniden başlatılmasını isterim.Phonegap uygulamamı proglamla yeniden başlat

Buna ihtiyacımın nedeni, kullanıcının kullanıcı dilini bir seçim kutusu menüsünden seçmesinin ardından yeniden başlatmam gerekiyor. I18n, kullanıcı kendi dil seçimini güncelledikten hemen sonra, 1 sayfada 5 düğmeden ve başka bir sayfada paragraftan ayrı olarak patlar. Bu 5 öğe bir önceki dilde kalıyor (aynı zamanda dil seçimi menü düzeni bir sebepten dolayı tamamen yok oluyor), fakat uygulamayı yeniden başlattığımda hepsi doğru dilde. I18n işleminde çok karmaşık bir sorun var ya da zorla yeniden başlatmayla arka kapıyı çözebilirim.

location.reload(); 

benim için bir tedavi çalışır:

Ty Çatlak

+0

Eğer html5 yönlendirme adresler ile bir SPA varsa, http://stackoverflow.com/a/37837377/82609 –

cevap

31

aşağıdaki kullanın.

Paul

+0

Oooo düşünebilirsiniz, neredeyse, bu soruya unutmuş Ama işe yarayacak gibi görünüyor, bu nedenle daha sonraki bir aşamada büyük bir kullanım olabilir. Thx – NuttySquirrel

+7

Bu, dizin sayfasını yeniden yükler, ancak aslında uygulamayı kapatmaz ve yeniden başlatmaz. Yararlı kendi içinde. Yine de, tam bir yeniden başlatmanın mümkün olup olmadığını merak ediyorum ...? – Jason

+1

Bir zamanlayıcı ile yeniden yükleme daha iyi bir yoldur .. –

8

Bu (en azından 2016 platformu sürümleri ile) iOS ve Android için çalışan bu

navigator.app.loadUrl("file:///android_asset/www/index.html", {wait:2000, loadingDialog:"Wait,Loading App", loadUrlTimeoutValue: 60000}); 

Bakri

+0

Work # s perfect. Teşekkürler! –

+1

Bu android için doğru mu? Ios uygulamasını yeniden yüklemem gerekirse ne olur? iOS index.html için yol ne olacak? –

+0

Ben (beklendiği gibi) onaylamak sadece Android için çalışır: D –

4

deneyin. Ayrıca SPA uygulamalarında da çalışır. Bu işlevsellik fazında 1'de kaldırılır beri

// keep startup url (in case your app is an SPA with html5 url routing) 
var initialHref = window.location.href; 

function restartApplication() { 
    // Show splash screen (useful if your app takes time to load) 
    navigator.splashscreen.show(); 
    // Reload original app url (ie your index.html file) 
    window.location = initialHref; 
} 
+0

için teşekkürler sadece bir satır window.location = initialHref sonra eklemek gerekir navigator.splashscreen.hide(); o zaman mükemmel çalışır. – Pritish

+1

@ index.html sayfanız yeniden yüklendiğinde, doğrudan hide() çağrılırsa daha iyi olur, aksi halde uygulama yeniden başlatıldığında tüm zamanlar ekranda görünmez. Ama eğer sizin için iyi çalışıyorsa, kendi uygulamanıza nasıl uyarlayacağınıza bağlı olarak –

+0

kodunuzu değerli cevabınız için teşekkürler. – Pritish