Web sayfasından iPhone uygulaması açmak

Selam arkadaşlar,

Ne zamandır yazamıyorum, malum ülkenin gündemi aşırı yoğun. Haliyle insanların dikkati de başka yönlere çekiliyor ister istemez. Bu sebeple iki yazı arasına bayağı bir süre geçti kusura bakmayın.

Bir web sayfasından nasıl iPhone uygulamasının açıldığını gösteren örnek bir kod paylaşmak istiyorum bu yazıda sizlerle.


<script language="javascript">

$(document).ready(function () {

var time = (new Date()).getTime();

var url = "your_app://functionality?someparam";
 window.location = url;

setTimeout(function () {

now = (new Date()).getTime()

console.log( "opened time:" + time);
 console.log( "now: " + now);

if ( now - time < 2500 ){
 //if the interval is bigger than 2500 ms, user probably opened the app
 window.location = "download_link";
 }
 }, 2000); //will wait for 2seconds before going to itunes
 });

</script>

Burada çok basit bir şekilde url scheme belirtmiş bir uygulamanın web siteden açılma denemesini görüyorsunuz. Burada önemli bir nokta, uygulama açılmazsa download_link adresine yapılan yönlendirme. Bu yönlendirmede zamanın önemi var çünkü her hangi bir kontrol yapmadığınız takdirde, uygulamanız açılsa bile indirme adresine yönlendirme oluyor. Bu yüzden zaman kontrolüne dikkat etmekte fayda var.

Mobil tarayıcıdan uygulamasının açılmasını isteyen arkadaşların işine yaraması dileğiyle,

Herkese iyi çalışmalar

IE7 name for id in Javascript??

Hi guys,

In a project I have been working on recenty, I have to deal with Internet Explorer 7 (can you believe it?). Anyway, the reason that we should work with Internet Explorer 7 is that most of the UI cannot work with anything other than IE7. I was curious of why that might be.

In a few days I understood the reason. For example a web page was unable to work with Chrome because it was giving a Javascript error for not finding an object specified by its id in the DOM. Then i checked and saw that there is really no sign of an object there. So when I tried it with IE7, i saw the horror :


 document.all['idthatisnotavailable'].value = 'some value'; <code>

As the name suggests, it was not an id, but a name for an input element of a form. So i saw that IE7 permits you to use the name field for the place of id fields in javascript code. Oh god!! What else do they have in store for us?

Javascript Sınıf Mantığı

Herkese merhaba,

Çoğu insan Javascript i sadece bir betik dili olarak biliyor. Evet doğru Javascript bir betik dili ama neler yapmaya gücü yetiyor gördükçe, her geçen gün daha çok şaşırıyorum. Malum çağımız da artık internet ve bilgi çağı olduğuna ve önemli olan bilginin büyük çoğunluğu ağ üzerinde bulunduğuna göre işi yazılımla ilgili olan herkesin ucundan bucağından alakadar olduğu bir konu.

Javascript her ne kadar betik dili olarak geçse de, nesneye yönelik özellikler de gösteren bir dil. Bunun anlamı, encapsulation ından inheritance ına kadar pek çok nesne özelliğini bu dilde de kullanabildiğinizdir. Ben sizlere Javascript’teki sınıf mantığından biraz bahsedeyim.

Örnek basit bir Javascript sınıfı :

function testClass(){
this.attr1 = 'someAttr';
this.attr2 = 5;
this.increase = function(){
this.attr2 = this.attr2 + 5;
}

şeklinde verilebilir. Bu sınıfı çağırmak istediğinizde ise :

var obj - new testClass();
obj.attr1 - 'new attr';
obj.attr2 - 19;
obj.increase();
alert(obj.attr2);

Yalnız bu biçimdeki kullanımda bir sorun var. Bu nesneyi her oluşturduğunuzda sınıfın içindeki metodu da aynı şekilde yaratıyorsunuz. Ama aslında ihtiyacınız olan şey bir metodun tüm nesneler için çalışmasıdır. Ne gerek var o kadar çok nesne metoduna değil mi canım? O zaman ne yapıyoruz prototype kullanıyoruz, yani ön tanımlı nesnemize metodumuzu ekliyoruz. Bu sayede tek bir fonksiyonu bundan sonra tüm nesnelerimiz için tek bir bellek alanı karşılığında kullanabiliyoruz. Örnek vermek gerekirse :

testClass.prototype.increaseFunc - function(){
this.attr2 = this.attr2 + 5;
}

Metodun çağırılmasını aynı şekilde yapabilirsiniz. Aslında burada yaptığımız sınıfın özelliğini artırmak oldu bir anlamda. Mesela bu prototype nesnesini kullanarak String sınıfında normalde olmayan fonksiyonları da ekleyebilirsiniz. Güzel bir şey yani 🙂

İleride karşıma gene sizlere bahsedecek kadar ilginç javascript özellikleri çıktıkça paylaşmaya devam edeceğim, bir ara JQuery ve muhteşem fonksiyonlarına girmeyi de düşünüyorum.

Herkese iyi çalışmalar.