AngularJS ile Uygulama Geliştirme

Bu kılavuz, AngularJS MVC çerçevesiyle Chrome Uygulamaları oluşturmaya başlamanızı sağlar. Angular'ı çalışırken göstermek için, çerçeve kullanılarak oluşturulan gerçek bir uygulamaya, yani Google Drive Yükleyici'ye atıfta bulunacağız. Kaynak kodu GitHub'da mevcuttur.

Uygulama hakkında

Google Drive Yükleme Aracı

Google Drive Yükleme Aracı, kullanıcıların Google Drive hesaplarında depolanan dosyaları hızlı bir şekilde görüntülemesine ve bu dosyalarla etkileşimde bulunmasına, ayrıca HTML Sürükle ve Bırak API'lerini kullanarak yeni dosyalar yüklemesine olanak tanır. Bu, Google'ın API'lerinden biriyle (bu örnekte Google Drive API) iletişim kuran bir uygulama oluşturma örneğidir.

Yükleme Aracı, kullanıcının verilerine erişmek için OAuth2'yi kullanır. chrome.identity API, giriş yapmış olan kullanıcı için OAuth jetonu getirme işlemini gerçekleştirir; bu nedenle işin zor kısmı bitmiştir. Uzun süreli bir erişim jetonunuz olduğunda, uygulamalar kullanıcının verilerine erişmek için Google Drive API'yi kullanır.

Bu uygulamanın kullandığı temel özellikler:

  • AngularJS'nin CSP için otomatik algılama özelliği
  • Google Drive API'den getirilen dosyaların listesini oluşturma
  • Dosya simgelerini çevrimdışı depolamak için HTML5 Filesystem API
  • Masaüstünden yeni dosyaları içe/yüklemek için HTML5 Sürükle ve Bırak
  • Resimleri yüklemek için XHR2, alanlar arası
  • OAuth yetkilendirmesi için chrome.identity API
  • Uygulamanın kendi gezinme çubuğu görünümünü ve tarzını tanımlayan Chrome'suz çerçeveler

Manifest dosyasını oluşturma

Tüm Chrome Uygulamaları, Chrome'un uygulamayı başlatmak için ihtiyaç duyduğu bilgileri içeren bir manifest.json dosyasına ihtiyaç duyar. Manifest, ilgili meta verileri içerir ve uygulamanın çalıştırmak için ihtiyaç duyduğu özel izinleri listeler.

Yükleyicinin manifestinin sadeleştirilmiş sürümü şu şekilde görünür:

{
  "name": "Google Drive Uploader",
  "version": "0.0.1",
  "manifest_version": 2,
  "oauth2": {
    "client_id": "665859454684.apps.googleusercontent.com",
    "scopes": [
      "https://www.googleapis.com/auth/drive"
    ]
  },
 ...
  "permissions": [
    "https://docs.google.com/feeds/",
    "https://docs.googleusercontent.com/",
    "https://spreadsheets.google.com/feeds/",
    "https://ssl.gstatic.com/",
    "https://www.googleapis.com/"
  ]
}

Bu manifestin en önemli bölümleri "oauth2" ve "izinler" bölümleridir.

"oauth2" bölümü, sihrini yapmak için OAuth2 tarafından gerekli olan parametreleri tanımlar. "client_id" oluşturmak için İstemci kimliğinizi alma bölümündeki talimatları uygulayın. "Kapsamlar", OAuth jetonunun geçerli olacağı yetkilendirme kapsamlarını (örneğin, uygulamanın erişmek istediği API'ler) listeler.

"İzinler" bölümünde, uygulamanın XHR2 üzerinden erişeceği URL'ler yer alır. Chrome'un hangi web alanları arası isteklere izin verileceğini bilmesi için URL önekleri gereklidir.

Etkinlik sayfası oluşturma

Tüm Chrome Uygulamaları, uygulamayı başlatmak ve sistem olaylarına yanıt vermek için bir arka plan komut dosyası/sayfası gerektirir.

Drive Yükleme Aracı, background.js komut dosyasında ana sayfaya yönlendiren 500x600 piksellik bir pencere açar. Ayrıca, içeriğin fazla ezilmemesi için pencere için bir minimum yükseklik ve genişlik de belirtir:

chrome.app.runtime.onLaunched.addListener(function(launchData) {
  chrome.app.window.create('../main.html', {
    id: "GDriveExample",
    bounds: {
      width: 500,
      height: 600
    },
    minWidth: 500,
    minHeight: 600,
    frame: 'none'
  });
});

Pencere, denetim içermeyen bir pencere olarak oluşturulur (frame: 'none'). Varsayılan olarak, pencereler işletim sisteminin varsayılan kapatma/genişlet/küçültme çubuğuyla oluşturulur:

Çerçevesiz Google Drive Yükleme Aracı

Yükleme Aracı, pencereyi "boş seçenek listesi" olarak oluşturmak için frame: 'none' kullanır ve main.html içinde özel bir kapatma düğmesi oluşturur:

Özel çerçeveli Google Drive Yükleme Aracı

Gezinme alanının tamamı