2011-08-13 19 views
11

Bir telefon kilitliyken bile çalışmaya devam etmek için javascript işlevini anlatmanın bir yolu var mı?Javascript, iPhone'u kilitlediğimde duruyor, hala çalıştırabilir mi?

Telefon bekleme moduna geçtiğinde bile çalışmaya devam etmem gereken bir zamanlayıcı var.

+0

Javascript kendi uygulamanızda mı (ör. "UIWebView" içinde) veya telefondaki bir tarayıcıda (Safari veya benzeri) mi? – mopsled

+0

bir web uygulaması, bu yüzden bir tarayıcıda –

cevap

19

Evet, yapabilirsiniz. Safari arka planda olduğunda bir JavaScript bile çalıştırabilirsiniz.

Sadece sitenizde gizli bir çerçeve koymak:

<iframe src="background.html" style="display:none;"></iframe> 

background.html:

<!DOCTYPE HTML> 
<head> 
<meta http-equiv="refresh" content="3" /> 
</head> 
<body> 
<script> 
parent.run_function_from_core_page(); 
</script> 
</body> 
</html> 

gizli çerçevede sayfa bile, JavaScript her 3 saniyede bir yeniler ve koşmak Telefon kilitli.

Dikkatli olun, çünkü WiFi'de değilseniz, yüksek veri trafiğine de yol açabilir!

+0

Ben sadece iOS 6.0.1 çalıştıran bir iPhone 4s üzerinde test ve iyi çalışıyor gibi görünüyor. Büyük bulmak! –

+1

Bu, iOS 7'den itibaren artık çalışmıyor. – blabus

+0

Bu, iOS 7.02 (11A501) ile iPhone 4S'de yazıldığı şekilde çalışır. :) @blabus, kodunu tekrar denemenizi veya göndermenizi öneririm. –

3

Hayır. Telefon kilitlendiğinde ve uyku moduna geçtiğinde, kodunuz çalışmaz. Bu tasarım gereğidir; iOS cihazları temelde tam donanımlı PC'ler değil, cep telefonlarıdır ve kullanıcı onları kullanmadığında güç tasarrufu sağlamak için tasarlanmıştır.

12

EDIT: Zamanlanmış javascript kodunu arka planda numarasını kullanarak çalıştırabilirsiniz. Bakınız Zsolt's response to this question.

iPhone, setTimeout() kullanarak uyurken javascript'i çalıştırmaya devam edemezsiniz.

Telefon uyku moduna geçtiğinde, Safari, çalışan herhangi bir javascript işlemini setTimeout() kullanarak öldürür. Bunun yapılmasının nedenlerinden dolayı this answer here'a bakın.

+1

bir ok tamam yani bir web uygulaması için bir zamanlayıcı yapmak zorunda ve hatta telefon kilitli olduğunda çalıştırmak için ihtiyacınız var, ben bunu nasıl yapmalıyım? PHP'de yapılabilir mi? ve sonra javascript belki de onu gösteriyor olabilir? –

+0

JavaScript, sayfa etkin sekme olmadığında hala çalışır ancak Safari hala açık. –

+0

@Jonathan Benim yanıt – mopsled

İlgili konular