Oh My God!

Blackberry , kaçış yok mu bundan diyorum her seferinde :)
Biliyorsunuz bir çok kurumsal firma iletişim alt yapısını gelişmiş operatör desteğiyle Blackberry üzerinden hallediyor.Bizim işletmede bu seriye dahil.
Haliyle her mobil cihaza karşı olan iştahım bu noktada bazı araştırmalar yapmama itti beni..Bir blackberry cihazında amaç cok primitive (öncelikle email!) belkide başarı bundan dolayı geliyor..
Gerçi son çıkardıkları ürünlerde gördüğüm kadarıyla "eğlence" konseptine de ciddi anlamda yer vermeye başlamış durumdalar..Her ne kadar cok windows mobile desemde
kontrol altına alınamayan memory leak'ler belli bir zaman sonra hayatı kabusa çeviriyor..Ama hala üzerinde en hızlı solution development yapılabilen platform olma
özelliğini koruduğu içinde kendisini sevmeden edemiyorum.. :))Biliyorsunuz piyasa da ki diğerlerine gore daha yeni ama hızlı yol katetmiş diğer bir rakipde apple'in
iphone'u.23 eylülden sonra Türkiye'de de resmen satışa sunulacak olan bu cihaz her ne kadar büyük olsa da estetiksel bakış açısı , aynı zamanda bir ipod olması ve
stabil calismasi yonuyle dikkatleri üstüne çekmeyi başardı..Üstelik fiyat politikasi da cabası..iphone'un özellikle browser desteği oldukca basarili.bu noktada
blackberry'nin zayıf kaldığını söyleyebilirim.ie 4.0 deneyimi yaşattığını söyleyebilirim :)) Sınırlandırılmış XHTML ve css desteği yerlerde sürünüyor..Ajax
desteğinide göremedim.En nihayetinde kasarsanız belli bir cihaz için fonksiyonelitesi arttirilmis çözümler üretmeniz mümkün..Kısıtlıda olsa bulunan JavaScript
desteği garip bir o kadar da enteresan  bir ayrıntıyla geliyor.Cihazınızda GPS device eğer mevcutsa (8800,8820,8310),şeker mi şeker gps enabled web siteler
hazırlamanız böylelikle kolay bir hale getirilmiş oluyor..Blackberry 8800 v4.1.1.90 üzerinde blackberry.location javasscript API'si ile yaptığım
(Oğuz Gülay'a teşekkürler..Yaşasın eskimiş Blackberry'ler.. :D) calismaya ait bir ekran görüntüsü..




blackberry.location.latitude ve blackberry.location.longitude :  Enlem ve boylam bilgisine erişiyoruz..İlk erişim istendiğinde resimde de gördüğünüz gibi
gps cihazından böyle bir bilgi alınmaya calisildiğini ve script'in calismasina izin verilip verilmeyeceğini soruyor..Tabiki evet diyoruz..Bu property'ler ile
cihazın o anki recieve ettiği değerleri alıyoruz..Internette biraz araştırdığımda bu soruyu sormadan devam etmesini sağlayacak şekilde default no dememiz cihaz
ayarları içinde henüz mümkün değil görünüyor.Ya da erişilmeye calisilan site (Javascript'in yer aldığı) için enterprise server üzerinde whitelist tanımı yapmamız
yeterli..Eğer kullanıcı No derse sonuç hem enlem hemde boylam bilgisi için 0 oluyor..

blackberry.location.refreshLocation(): Adından da anlaşılacağı üzere bu metod ile cihazın o anki lokasyon bilgisinin update edilmesi sağlanıyor..Bu metodu cagirmaniz
her seferinde en bilgiyi alacağınıza işaret etmiyor..! bunun 2 sebebi var 1.lokasyon değişmemiştir, 2. 1.ve2. istek arasındaki süre dilimi gps device'in update hızından daha
az bir sürede gerçekleşmiş olabilir..Eğer başarılı olursa true değeri döndürmekte..

blackberry.location.onLocationUpdate(callbackJS) : Bu metod ile refreshLocation() metodu sonrası yeni konum bilgisinin alınması için callback yapılacak metod
tanımı gerçekleştiriliyor.Şöyleki Javascript'de setTimeout diye bir komut vardır cogunuz bilirsiniz bu windows development'daki timer nesnesinin yaptığı işle aynı
işi yapmak için ayarlanmış bir fonksiyondur.Aşağıda verdiğim örnekte ne demek istediğimi daha iyi anlayacaksınız..setTimeout içinde subliminal konulu blog entry'imi bulup
okumanızı öneriririm..



    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

      <head>

        <title>GPS Testing</title>

        <script "text/javascript">

          // location her değiştiğinde call edilecek olan metodumuz..!

          function locationXY()

          {

             alert("Latitude "  +

                 blackberry.location.latitude);

             alert("Longitude " +

                 blackberry.location.longitude);

             return true;

         }


    

         // İlgili
Blackberry API'sinin desteklenip desteklenmediği bilgisi alınıyor..

         if( window.blackberry && blackberry.location.GPSSupported) {

               document.write("Cihazınızın GPS Desteği Var..Yaşasın!");

   
               // CallBack Metodumuzu set ediyoruz!
                            

               blackberry.location.onLocationUpdate("locationXY()");

               
               blackberry.location.setAidMode(2); // autonomous olacak şekilde set ediyorz..GPs'in nasıl veri basacağı bilgisi.Autonomous yavaş ama sorunsuz.!
           

               //GPS bilgileri güncellesin istiyoruz..

               blackberry.location.refreshLocation();

         }    

         else

         {

           document.write("Cihazınız Blackberry Location API'si desteği vermiyor..");

         }


       </script>    

     </head>

     <body>

     </body>

   </html>


Sevgiler.

E2