Internet Explorer 8.0 ile programcı olarak hayatımıza girecek yeniliklerden birisi de Accelerator'lar olacak. Accelerator'lar, kullanıcıların, web uygulamalarına ve servislerine hızlıca erişmelerine yardımcı olan, içerik menüleridir. Sayfanın sağ tıklama menüsünde ve seçili metnin üzerine gelince çıkan menüde gösterilirler. Accelerator'lar yaptıkları işlere göre kategorilendirildikleri için kullanıcılar istedikleri servise hızlıca ulaşabilirler.
Accelerator'ların Faydaları
- Internet Explorer'da sağ tıklama menüsünde bulunurlar, yaptıkları işe göre kategorilendirilirler bu nedenle aranılan bilgiye hızlıca erişim sağlanır.
- Kullanıcılar, gezindikleri sayfanın dışına çıkmadan bizim kendi sitemizde sunduğumuz bir hizmete ulaşabilirler.
Accelerator'lar, o anda açık olan sayfa üzerindeki bilgi üzerinden işlem yaparlar. Sayfa üzerinde seçili olan metni, başka bir sayfa üzerinde işleyip kullanıcıyı sonuca yönlendirirler. Hatta sonucun gösterilmesi için, kullanıcının başka sayfaya gitmesine bile gerek yoktur. Sonucu sayfa üzerinde açılan alanda ön izleme gösterebilirsiniz. Accelerator'lar yaptıkları işlere göre kategorilerine ayrılmışlardır.
Şekil 1 - Live Maps ile Haritalandırırken
Varsayılan olarak gelen altı kategori vardır, bunlar:
- Add: del.icio.us, Digg
- Blog: Windows Live Spaces, Blog Engine
- Define: Encarta, Sesli Sözlük
- Map: Windows Live Maps
- Send: Windows Live Mail
- Translate: BabelFish, Windows Live
Eğer, geliştirdiğiniz uygulama bu kategorilerden birine uymuyorsa kendi kategorinizi tanımlayabilirsiniz. Accelerator'lar, Eklenti Yöneticisinde kategorilerine göre gruplandırılacağı için, kategori isimlerinin düzgün olması çok önemlidir. Kategori isimleri, marka vb. şeyleri içermemelidir.
Değişkenler
Accelerator'lar o anda kullanıcının gezdiği sayfadan, bazı bilgileri alır ve işlerler. Bu veriler, hizmete ya da uygulamaya GET veya POST olarak gönderilir. Kullanılabilecek olan değişkenler aşağıdadır:
|
Değişken
|
İçerik
|
Açıklama
|
|
{selection}
|
Seçili metin
|
Kullanıcının sayfada seçtiği metin
|
|
{ documentUrl}
|
Tümü
|
Kullanıcının, Accelerator'u çalıştırdığı sayfanın adresi
|
|
{documentTitle}
|
Tümü
|
Kullanıcının, Accelerator'u çalıştırdığı sayfanın başlığı
|
|
{documentDomain}
|
Tümü
|
{documentUrl} değişkeninin üst-düzey alan adını içerir. (bu sayfa için: nesterosa.com)
|
|
{documentHost}
|
Tümü
|
Kullanıcının, Accelerator'u çalıştırdığı sitenin adresi
|
|
{link}
|
İlişim
|
Kullanıcının seçtiği ilişimin adresi
|
|
{linkText}
|
Metin
|
Kullanıcının seçtiği ilişimin metni
|
|
{linkRel}
|
Metin
|
Kullanıcının seçtiği ilişimin, "rel" özelliğinin değeri
|
|
{linkType}
|
Metin
|
Kullanıcının seçtiği ilişimin MIME türü
|
|
{linkDomain}
|
İlişim
|
Kullanıcının seçtiği ilişimin üst-düzey alan adı
|
|
{linkHost}
|
İlişim
|
{linkDomain} değişkeninin sitesinin adresi
|
Tüm değişkenler süslü parantezler içinde yazılmalıdır. Eğer, değişkenler dışında bir yerde süslü parantez kullanmak isterseniz, "\" karakterini es geçme karakteri olarak kullanabilirsiniz. Örneğin: \{{link}\}
Eğer gerekli bir değişken, boşsa ya da mevcut değilse, Accelerator çalıştırılamaz ve menüde gözükmez. Örneğin {linkRel} değişkeni her zaman mevcut olmayabilir.
Bir değişken, gerekli değilse; yani opsiyonel ise adının sonuna "?" eklenir. Örneğin: {linkRel?}. Opsiyonel bir değişken boş olduğunda ya da mevcut olmadığında ilgili os:parameter öğesi es geçilir ve karşı tarafa iletilmez.
Yapı
Olağan bir Accelerator, aşağıdaki gibi bir XML dosyasıdır:
<?xml version="1.0" encoding="UTF-8"?>
<os:openServiceDescription
xmlns:os="http://www.microsoft.com/schemas/openservicedescription/1.0">
<os:homepageUrl>http://maps.nesterosa.com</os:homepageUrl>
<os:display>
<os:name>Nesterosa ile Haritalandır</os:name>
<os:icon>http://www.nesterosa.com/favicon.ico</os:icon>
<os:description>Seçtiğiniz, adresi haritalandırır.</os:description>
</os:display>
<os:activity category="Map">
<os:activityAction context="selection">
<os:preview
action="http://maps.example.com/preview.php?addr={selection}" />
<os:execute action="http://maps.example.com/" method="get">
<os:parameter name="addr" value="{selection}" type="text" />
</os:execute>
</os:activityAction>
</os:activity>
</os:openServiceDescription>
os: openServiceDescription Öğesi
Bir Accelerator'ün temel öğesidir. Yalnızca bir defa geçer ve diğer tüm öğeleri kapsar.
os:homepageUrl Öğesi
Accelerator'ün bulunduğu, sitenin ana sayfasının adresini içerir. Yalnızca bir defa openServiceDescription altında geçebilir ve zorunludur.
os:display Öğesi
Accelerator'ün gösterim seçeneklerini içerir. Yalnızca bir defa openServiceDescription altında geçebilir ve zorunludur.
os:name Öğesi
Accelerator'ün ismini içerir. Yalnızca bir defa display altında geçebilir ve zorunludur. 50 ya da daha az karakterden oluşabilir. Accelerator'ün yaptığı işin fiili ile betimlenmesi önerilir. Örneğin: Nesterosa ile Haritalandır.
os:icon Öğesi
Accelerator'ün simgesini belirtir. En fazla bir defa display altında geçebilir ve opsiyoneldir. Geçerli bir adres içermelidir.
os:description Öğesi
Accelerator'ün kısa bir açıklamasını içerir. En fazla bir defa display altında geçebilir ve opsiyoneldir. 250 ya da daha az karakter içermelidir.
os:activity Öğesi
Accelerator servisi ile ilgili bilgileri içerir. Yalnızca bir defa openServiceDescription altında geçebilir ve zorunludur.
category Özniteliği
Accelerator'ün kategorisini belirler. Düz metin olmalıdır. hompageUrl ile birlikte Accelerator'ün tanımlanması için kullanılır.
os: activityAction Öğesi
context özniteliğine özel bilgileri içerir. activity öğesi altında en az bir defa kullanılmalıdır.
context Özniteliği
Accelerator'ün üzerinde çalışacağı bilgiyi belirler. Üç farklı değerden birisini alabilir:
Varsayılan değeri selection'dır.
os:preview Öğesi
Sayfada ön izleme için gerekli bilgileri içerir. Verilen adresten dönen değer yüksekliği 240, genişliği 320 olan bir HTML dokümanı olmalıdır. activityAction altında en fazla bir defa tanımlanabilir.
action Özniteliği
Accelerator'da ön izlenecek sayfanın ilişim taslağını içerir. Bu taslakta, yukarıda belirtilen değişkenler kullanılabilir. Kullanılması zorunludur.
method Özniteliği
Kullanılacak http metodunu içerir. GET ya da POST olabilir. Varsayılan değeri get'tir.
enctype Özniteliği
Karşı tarafa gönderilecek formun içeriğinin türünü belirtir. Varsayılan olarak: "application/x-www-form-urlencoded"'dır. Değeri http://www.w3.org/TR/html4/interact/forms.html adresinde desteklenmelidir.
accept-charset Özniteliği
Gönderilecek bilginin kodlamasını içerir. Varsayılan olarak utf-8'dir.
os:execute Öğesi
Accelerator'ü çalıştırma ile ilgili bilgileri içerir. activityAction altında bir defa geçmelidir.
preview öğesi ile aynı öznitelikleri paylaşmaktadır.
os:parameter Öğesi
action adresine gönderilecek parametrelerin isimlerini ve değerlerini içerir, preview ya da execute altında geçebilir, ilişim taslakları kullanılabilir.
name Özniteliği
Parametrenin ismini içerir ve bir kullanılmak zorundadır.
value Özniteliği
Parametrenin değerini içerir, bir değişkene referans verilebilir ve kullanılmak zorundadır.
type Özniteliği
{selection} değişkenin nasıl ele alınacağını belirtir. text ya da html değerlerini alabilir ve varsayılan değeri text'tir.
İlişim Taslakları
Bir ilişim taslağı, karşı tarafa iletilecek olan bilginin biçimini belirler. İki şekilde tanımlanabilir: satır içinde ya da parameter'larla.
Örnekler
Satır içinde kullanım örneği:
<execute action="http://www.nesterosa.com/accelerator.axd?type=lastposts&q={selection}" />
Form tabanlı parameter'larla kullanım örneği:
<execute action="http://www.nesterosa.com/accelerator.axd>
<parameter name="type" value="lastpost" />
<parameter name="q" value="{selection}" type="html" />
</execute>
Kullanılabilecek değişkenleri yukarıda belirtmiştim.
Bu kadar, roman yazdıktan sonra, kodlara geçmeden önce dikkat etmeniz gereken bir şey daha var: Accelerator'lar yalnızca http yada https üzerinden yüklenebilir. Yerel sistemde test edebilmek için ya makinenize ISS kurmalısınız ya da Visual Studio ile gelen test sunucusunu kullanmalısınız.
Yükleme
Bir siteden Accelerator eklemek için, window.external.AddService metodu kullanılır. Paremetre olarak yalnızca, Accelerator'ün bulunduğu yerin adresini alır.
Acclerator yüklenmiş mi diye kontrol etmek için, window.external.IsServiceInstalled kullanılır. Iki parametre alır. Birincisi, servisin adresi; ikincisi ise kategorisidir.
Örnek:
// JS fonksiyonu
function InstallAccelarator()
{
var url = location.href;
var acceleratorUrl = url.substr(0, url.lastIndexOf("/") + 1) + "blabal.xml";
if (window.external.IsServiceInstalled(acceleratorUrl, "Map"))
alert("Accelerator zaten yuklu!");
else
window.external.AddService(acceleratorUrl);
}
// HTML Kodu
<input type="button" onclick="installActivity();" value="Accelerator Yukle" />
Bu yazıyı ilk değerlendiren siz olun
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5