สร้างแอปด้วย AngularJS

คู่มือนี้จะช่วยคุณในการเริ่มสร้างแอป Chrome ด้วยเฟรมเวิร์ก MVC AngularJS ถึง แสดง Angular ในการใช้งานจริง เราจะอ้างอิงถึงแอปจริงที่สร้างขึ้นโดยใช้เฟรมเวิร์กนี้ เครื่องมืออัปโหลดของ Google ไดรฟ์ ซอร์สโค้ดมีอยู่ใน GitHub

เกี่ยวกับแอป

เครื่องมืออัปโหลดของ Google ไดรฟ์

เครื่องมืออัปโหลดของ Google ไดรฟ์ช่วยให้ผู้ใช้ดูและโต้ตอบกับไฟล์ที่เก็บไว้ใน Google ไดรฟ์ และอัปโหลดไฟล์ใหม่โดยใช้ API การลากและวางของ HTML เป็น ตัวอย่างที่ดีในการสร้างแอปที่พูดคุยกับ API ของ Google ในกรณีนี้ Google API ไดรฟ์

ผู้อัปโหลดใช้ OAuth2 เพื่อเข้าถึงข้อมูลของผู้ใช้ chrome.identity API จะจัดการการดึงข้อมูล โทเค็น OAuth สำหรับผู้ใช้ที่เข้าสู่ระบบ เรามุ่งมั่นทุ่มเทให้ทุกอย่าง เมื่อเรามีอายุยืนยาว โดยแอปดังกล่าวจะใช้ Google Drive API เพื่อเข้าถึงข้อมูลของผู้ใช้

ฟีเจอร์สำคัญที่แอปนี้ใช้มีดังนี้

  • การตรวจหาอัตโนมัติของ AngularJS สำหรับ CSP
  • แสดงรายการไฟล์ที่ดึงมาจาก Google Drive API
  • HTML5 Filesystem API เพื่อจัดเก็บไอคอนไฟล์แบบออฟไลน์
  • การลากและวาง HTML5 สำหรับการนำเข้า/อัปโหลดไฟล์ใหม่จากเดสก์ท็อป
  • XHR2 เพื่อโหลดรูปภาพ ข้ามโดเมน
  • chrome.identity API สำหรับการให้สิทธิ์ OAuth
  • เฟรมที่ไม่ใช้ Chrome เพื่อกำหนดรูปลักษณ์ของแถบนำทางของแอปเอง

การสร้างไฟล์ Manifest

แอป Chrome ทั้งหมดต้องมีไฟล์ manifest.json ซึ่งมีข้อมูลที่ Chrome ต้องเปิดใช้ แอปนั้น ไฟล์ Manifest มีข้อมูลเมตาที่เกี่ยวข้องและแสดงสิทธิ์พิเศษที่แอปจำเป็นต้องใช้ วิ่งได้

ไฟล์ Manifest ของผู้อัปโหลดในเวอร์ชันที่ถูกตัดออกจะมีลักษณะดังนี้

{
  "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/"
  ]
}

ส่วนที่สำคัญที่สุดของไฟล์ Manifest นี้คือ "oauth2" และ "สิทธิ์"

"oauth2" OAuth2 จะกำหนดพารามิเตอร์ที่จำเป็นด้วย OAuth2 วิธีสร้าง "client_id" โดยทำตามวิธีการในรับรหัสลูกค้า "ขอบเขต" แสดงรายการ ขอบเขตการให้สิทธิ์ที่โทเค็น OAuth จะใช้ได้ (ตัวอย่างเช่น API ที่แอปต้องการ การเข้าถึง)

"สิทธิ์" มี URL ที่แอปจะเข้าถึงผ่าน XHR2 คำนำหน้า URL คือ เพื่อให้ Chrome ทราบว่าต้องอนุญาตคำขอข้ามโดเมนใด

การสร้างหน้ากิจกรรม

แอป Chrome ทั้งหมดต้องใช้สคริปต์/หน้าเว็บพื้นหลังเพื่อเปิดแอปและตอบสนองต่อเหตุการณ์ของระบบ

ในสคริปต์ background.js เครื่องมืออัปโหลดไดรฟ์จะเปิดหน้าต่างขนาด 500x600 พิกเซลไปยังหน้าหลัก และ ระบุความสูงและความกว้างขั้นต่ำของหน้าต่างเพื่อไม่ให้เนื้อหาดูหนักเกินไป

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'
  });
});

ระบบจะสร้างหน้าต่างเป็นหน้าต่างที่ไม่ใช้ Chrome (เฟรม: "ไม่มี") โดยค่าเริ่มต้น หน้าต่างจะแสดงผลด้วย แถบปิด/ขยาย/ย่อเริ่มต้นของระบบปฏิบัติการ:

เครื่องมืออัปโหลดของ Google ไดรฟ์ที่ไม่มีเฟรม

ผู้อัปโหลดใช้ frame: 'none' เพื่อแสดงหน้าต่างเป็น "แถบสเลทว่าง" และสร้างการปิดที่กำหนดเอง ใน main.html:

เครื่องมืออัปโหลดของ Google ไดรฟ์พร้อมเฟรมที่กำหนดเอง

พื้นที่นำทางทั้งหมดรวมอยู่ใน