เครื่องมือทางเทคนิคสำหรับเรียกใช้แอป Chrome บนอุปกรณ์เคลื่อนที่อยู่ในเวอร์ชันตัวอย่างก่อนเปิดตัวสำหรับนักพัฒนาซอฟต์แวร์ โปรดแสดงความคิดเห็นกับเราโดยใช้เครื่องมือติดตามปัญหาของ GitHub, ฟอรัมนักพัฒนาแอป Chrome, Stack Overflow หรือหน้านักพัฒนาแอป G+
ภาพรวม
คุณสามารถเรียกใช้แอป Chrome ใน Android และ iOS ผ่านชุดเครื่องมือที่อิงตาม Apache Cordova ซึ่งเป็นเฟรมเวิร์กการพัฒนาแอปบนอุปกรณ์เคลื่อนที่แบบโอเพนซอร์สสำหรับสร้างแอปบนอุปกรณ์เคลื่อนที่ที่ทำงานได้โดยไม่ต้องใช้โปรแกรมกลางโดยใช้ HTML, CSS และ JavaScript
Apache Cordova จะรวมโค้ดเว็บของแอปพลิเคชันด้วย Shell แอปพลิเคชันดั้งเดิมและอนุญาตให้คุณเผยแพร่เว็บแอปแบบผสมผ่าน Google Play และ/หรือ Apple App Store หากต้องการใช้ Apache Cordova กับแอป Chrome ที่มีอยู่ คุณต้องใช้เครื่องมือบรรทัดคำสั่ง cca
(c ordova c hrome a pp)
แหล่งข้อมูลเพิ่มเติม
- มีข้อควรพิจารณาเป็นพิเศษ 2-3 ประการที่คุณควรคำนึงถึงเมื่อพัฒนาด้วย Cordova เราได้ระบุหัวข้อเหล่านี้ไว้ในส่วนการพิจารณา
- หากต้องการดูว่า Chrome API ใดบ้างที่รองรับบนอุปกรณ์เคลื่อนที่ ให้ไปที่หน้าสถานะ API
- หากต้องการดูตัวอย่างแอป Chrome ในอุปกรณ์ Android โดยไม่ต้องใช้ชุดเครื่องมือ ให้ใช้เครื่องมือสำหรับนักพัฒนาแอป Chrome (ADT)
มาเริ่มกันเลย
ขั้นตอนที่ 1: ติดตั้งเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์
เครื่องมือทางเทคนิคของแอป Chrome สําหรับอุปกรณ์เคลื่อนที่สามารถกำหนดเป้าหมายเป็น iOS 6 ขึ้นไปและ Android 4.x ขึ้นไป
Dependency การพัฒนาสำหรับทุกแพลตฟอร์ม
ต้องมี Node.js เวอร์ชัน 0.10.0 (หรือสูงกว่า) ที่มี
npm
- Windows: ติดตั้ง Node.js โดยใช้ไฟล์ปฏิบัติการสําหรับการติดตั้งที่ดาวน์โหลดได้จาก nodejs.org
- OS X หรือ Linux: ไฟล์ปฏิบัติการสําหรับการติดตั้งมีให้ดาวน์โหลดจาก nodejs.org ด้วย หากไม่ต้องการใช้สิทธิ์เข้าถึงระดับรูท การติดตั้งผ่าน nvm อาจสะดวกกว่า ตัวอย่าง
curl https://raw.github.com/creationix/nvm/master/install.sh | sh source ~/.bash_profile || source ~/.profile || source ~/.bashrc nvm install 0.10 nvm alias default 0.10
การกำหนดเป้าหมาย Android
เมื่อพัฒนาแอปพลิเคชันสำหรับ Android คุณจะต้องติดตั้งสิ่งต่อไปนี้ด้วย
- Java JDK 7 (หรือสูงกว่า)
- Android SDK เวอร์ชัน 4.4.2 (หรือสูงกว่า)
- ติดตั้ง Android SDK และเครื่องมือสําหรับนักพัฒนาแอป Android ที่มาพร้อมกับ Android ADT Bundle
- เพิ่ม
sdk/tools
และsdk/platform-tools
ลงในตัวแปรสภาพแวดล้อม PATH - OS X: Eclipse เวอร์ชันที่มาพร้อมกับ Android SDK ต้องใช้ JRE 6 หากการเปิด Eclipse.app ไม่แสดงข้อความแจ้งให้ติดตั้ง JRE 6 ให้ดาวน์โหลดผ่าน Mac App Store
- Linux: Android SDK ต้องใช้ไลบรารีการสนับสนุน 32 บิต ใน Ubuntu ให้รับข้อมูลเหล่านี้ผ่านวิธีต่อไปนี้
apt-get install ia32-libs
- Apache Ant
- เพิ่ม
apache-ant-x.x.x/bin
ลงในตัวแปรสภาพแวดล้อม PATH
- เพิ่ม
การกำหนดเป้าหมาย iOS
โปรดทราบว่าการพัฒนา iOS จะทำได้บน OS X เท่านั้น นอกจากนี้คุณจะต้องติดตั้งสิ่งต่อไปนี้ด้วย
- Xcode 5 (หรือสูงกว่า) ซึ่งมีเครื่องมือบรรทัดคำสั่งของ Xcode
- ios-deploy (จําเป็นสําหรับการติดตั้งใช้งานในอุปกรณ์ iOS)
npm install -g ios-deploy
- ios-sim (จําเป็นสําหรับการติดตั้งใช้งานใน iOS Simulator)
npm install -g ios-sim
- ไม่บังคับ: ลงทะเบียนเป็นนักพัฒนาแอป iOS
- ซึ่งจำเป็นต้องใช้ในการทดสอบบนอุปกรณ์จริงและส่งไปยัง App Store
- คุณสามารถข้ามการลงทะเบียนได้หากวางแผนที่จะใช้เครื่องมือจำลองของ iPhone/iPad เท่านั้น
ติดตั้งเครื่องมือบรรทัดคำสั่ง cca
ติดตั้ง cca
ผ่าน npm:
npm install -g cca
หากต้องการอัปเดตชุดเครื่องมือในภายหลังด้วยรุ่นใหม่ ให้ทำดังนี้ npm update -g cca
ยืนยันว่าติดตั้งทุกอย่างถูกต้องโดยเรียกใช้คำสั่งนี้จากบรรทัดคำสั่ง:
cca checkenv
คุณจะเห็นหมายเลขเวอร์ชันของ cca
ที่แสดงผลและยืนยันเกี่ยวกับการติดตั้ง SDK ของ Android หรือ iOS
ขั้นตอนที่ 2: สร้างโปรเจ็กต์
วิธีสร้างโปรเจ็กต์แอป Chrome บนอุปกรณ์เคลื่อนที่เริ่มต้นในไดเรกทอรีชื่อ YourApp
cca create YourApp
หากคุณสร้างแอป Chrome ไว้แล้วและต้องการย้ายไปยังแพลตฟอร์มอุปกรณ์เคลื่อนที่ ให้ใช้แฟล็ก --link-to
เพื่อสร้างsymlink
cca create YourApp --link-to=path/to/manifest.json
แต่หากต้องการคัดลอกไฟล์แอป Chrome ที่มีอยู่ คุณก็ใช้แฟล็ก --copy-from
ได้โดยทำดังนี้
cca create YourApp --copy-from=path/to/manifest.json
หากยังไม่มีแอป Chrome ของคุณเอง ลองใช้ตัวอย่างแอป Chrome ที่รองรับอุปกรณ์เคลื่อนที่ซึ่งมีอยู่มากมาย
ขั้นตอนที่ 3: พัฒนา
คุณสร้างและเรียกใช้แอปพลิเคชันได้ 2 วิธี ดังนี้
- ตัวเลือก ก: จากบรรทัดคำสั่งโดยใช้เครื่องมือ
cca
หรือ - ตัวเลือก ข: โดยใช้ IDE เช่น Eclipse หรือ Xcode การใช้ IDE เป็นทางเลือก (แต่มักมีประโยชน์) ในการช่วยเปิดใช้งาน กำหนดค่า และแก้ไขข้อบกพร่องของแอปพลิเคชันไฮบริดบนอุปกรณ์เคลื่อนที่
ตัวเลือก ก: พัฒนาและสร้างโดยใช้บรรทัดคำสั่ง
จากรูทของโฟลเดอร์โปรเจ็กต์ที่ cca
สร้างขึ้น ให้ทำดังนี้
Android
- วิธีเรียกใช้แอปใน Android Emulator:
cca emulate android
- หมายเหตุ: คุณต้องตั้งค่าโปรแกรมจำลองก่อน คุณสามารถเรียกใช้
android avd
เพื่อตั้งค่านี้ได้ ดาวน์โหลดอิมเมจโปรแกรมจำลองเพิ่มเติมโดยเรียกใช้android
หากต้องการให้อิมเมจของ Intel ทำงานได้เร็วขึ้น ให้ติดตั้ง HAXM ของ Intel
- หมายเหตุ: คุณต้องตั้งค่าโปรแกรมจำลองก่อน คุณสามารถเรียกใช้
- วิธีเรียกใช้แอปในอุปกรณ์ Android ที่เชื่อมต่อ:
cca run android
iOS
- วิธีเรียกใช้แอปในโปรแกรมจำลอง iOS:
cca emulate ios
- วิธีเรียกใช้แอปในอุปกรณ์ iOS ที่เชื่อมต่ออยู่
cca run ios
- หมายเหตุ: คุณต้องตั้งค่าโปรไฟล์การจัดสรรสำหรับอุปกรณ์ก่อน
ตัวเลือก ข: พัฒนาและสร้างโดยใช้ IDE
Android
- ใน Eclipse ให้เลือก
File
->Import
- เลือก
Android
>Existing Android Code Into Workspace
- นําเข้าจากเส้นทางที่คุณเพิ่งสร้างด้วย
cca
- คุณควรมีโปรเจ็กต์ 2 รายการที่จะนําเข้า โดยโปรเจ็กต์หนึ่งคือ
*-CordovaLib
- คุณควรมีโปรเจ็กต์ 2 รายการที่จะนําเข้า โดยโปรเจ็กต์หนึ่งคือ
- คลิกปุ่มเล่นเพื่อเรียกใช้แอป
- คุณจะต้องสร้างการกําหนดค่าการเรียกใช้ (เช่นเดียวกับแอปพลิเคชัน Java ทั้งหมด) โดยปกติแล้ว ระบบจะแสดงข้อความแจ้งให้คุณดำเนินการนี้เป็นครั้งแรกโดยอัตโนมัติ
- คุณจะต้องจัดการอุปกรณ์/โปรแกรมจำลองในครั้งแรกด้วย
iOS
เปิดโปรเจ็กต์ใน Xcode โดยพิมพ์ข้อมูลต่อไปนี้ในหน้าต่างเทอร์มินัล
cd YourApp open platforms/ios/*.xcodeproj
ตรวจสอบว่าคุณกําลังสร้างเป้าหมายที่ถูกต้อง
ที่ด้านซ้ายบน (ข้างปุ่ม "เรียกใช้" และ "หยุด") จะมีเมนูแบบเลื่อนลงให้เลือกโปรเจ็กต์และอุปกรณ์เป้าหมาย ตรวจสอบว่าได้เลือก
YourApp
ไม่ใช่CordovaLib
คลิกปุ่มเล่น
การเปลี่ยนแปลงซอร์สโค้ดของแอป
ไฟล์ HTML, CSS และ JavaScript จะอยู่ในไดเรกทอรี www
ของโฟลเดอร์โปรเจ็กต์ cca
สำคัญ: หลังจากทําการเปลี่ยนแปลงใน www/
คุณต้องเรียกใช้ cca prepare
ก่อนจึงจะติดตั้งใช้งานแอปพลิเคชันได้ หากคุณเรียกใช้ cca build
, cca run
หรือ cca emulate
จากบรรทัดคำสั่ง ระบบจะดำเนินการขั้นตอนเตรียมโดยอัตโนมัติ หากพัฒนาโดยใช้ Eclipse/XCode คุณต้องเรียกใช้
cca prepare
ด้วยตนเอง
การแก้ไขข้อบกพร่อง
คุณสามารถแก้ไขข้อบกพร่องของแอป Chrome บนอุปกรณ์เคลื่อนที่ได้เช่นเดียวกับที่แก้ไขข้อบกพร่องของแอปพลิเคชัน Cordova
ขั้นตอนที่ 4: ขั้นตอนถัดไป
เมื่อมีแอป Chrome บนอุปกรณ์เคลื่อนที่ที่ใช้งานได้แล้ว คุณก็ปรับปรุงประสบการณ์การใช้งานบนอุปกรณ์เคลื่อนที่ได้หลายวิธี
ไฟล์ Manifest ของอุปกรณ์เคลื่อนที่
มีการตั้งค่าแอป Chrome บางอย่างที่ใช้เฉพาะกับแพลตฟอร์มอุปกรณ์เคลื่อนที่เท่านั้น เราได้สร้างไฟล์ www/manifest.mobile.json
เพื่อเก็บค่าเหล่านี้ไว้ และมีการอ้างอิงค่าที่เฉพาะเจาะจงตลอดทั้งเอกสารประกอบของปลั๊กอินและคู่มือนี้
คุณควรปรับค่าที่นี่ตามความเหมาะสม
ไอคอน
แอปบนอุปกรณ์เคลื่อนที่ต้องใช้ความละเอียดของไอคอนมากกว่าแอป Chrome บนเดสก์ท็อปเล็กน้อย
สำหรับ Android ต้องมีขนาดต่อไปนี้
- 36 พิกเซล, 48 พิกเซล, 78 พิกเซล, 96 พิกเซล
สำหรับแอป iOS ขนาดที่จำเป็นจะแตกต่างกันไปตามที่คุณรองรับ iOS 6 หรือ iOS 7 จำนวนไอคอนขั้นต่ำที่ต้องการมีดังนี้
- iOS 6: 57 พิกเซล, 72 พิกเซล, 114 พิกเซล, 144 พิกเซล
- iOS 7: 72 พิกเซล, 120 พิกเซล, 152 พิกเซล
รายการไอคอนทั้งหมดจะมีลักษณะดังนี้ในไฟล์ manifest.json
"icons": {
"16": "assets/icons/icon16.png",
"36": "assets/icons/icon36.png",
"48": "assets/icons/icon48.png",
"57": "assets/icons/icon57.png",
"72": "assets/icons/icon72.png",
"78": "assets/icons/icon78.png",
"96": "assets/icons/icon96.png",
"114": "assets/icons/icon114.png",
"120": "assets/icons/icon120.png",
"128": "assets/icons/icon128.png",
"144": "assets/icons/icon144.png",
"152": "assets/icons/icon152.png"
}
ระบบจะคัดลอกไอคอนไปยังตำแหน่งที่เหมาะสมสำหรับแต่ละแพลตฟอร์มทุกครั้งที่คุณเรียกใช้
cca prepare
หน้าจอเริ่มต้น
แอปใน iOS จะแสดงหน้าจอแนะนำสั้นๆ ขณะที่แอปกำลังโหลด ชุดหน้าจอเริ่มต้นของ Cordova จะรวมอยู่ใน platforms/ios/[AppName]/Resources/splash
ขนาดที่ต้องการมีดังนี้
- 320 พิกเซล x 480 พิกเซล + 2 เท่า
- 768 x 1024 พิกเซล + 2 เท่า (แนวตั้งของ iPad)
- 1024 x 768 พิกเซล + 2 เท่า (แนวนอนสำหรับ iPad)
- 640 x 1146 พิกเซล
ขณะนี้ cca
ไม่ได้แก้ไขรูปภาพหน้าจอแนะนำ
ขั้นตอนที่ 5: เผยแพร่
ในไดเรกทอรี platforms
ของโปรเจ็กต์ คุณจะมีโปรเจ็กต์เนทีฟที่สมบูรณ์ 2 โปรเจ็กต์ ได้แก่ โปรเจ็กต์หนึ่งสำหรับ Android และอีกโปรเจ็กต์สำหรับ iOS คุณสามารถสร้างเวอร์ชันการเผยแพร่ของโปรเจ็กต์เหล่านี้ และเผยแพร่ใน Google Play หรือ App Store ของ iOS
เผยแพร่ไปยัง Play Store
วิธีเผยแพร่แอปพลิเคชัน Android ไปยัง Play Store
อัปเดตรหัสเวอร์ชัน Android 2 รายการ แล้วเรียกใช้
cca prepare
android:versionName
ตั้งค่าโดยใช้คีย์version
ในwww/manifest.json
(การดำเนินการนี้จะตั้งค่าเวอร์ชันของแอปที่แพ็กเกจสำหรับเดสก์ท็อปด้วย)android:versionCode
ตั้งค่าโดยใช้คีย์versionCode
ในwww/manifest.mobile.js
แก้ไข (หรือสร้าง)
platforms/android/ant.properties
และตั้งค่าพร็อพเพอร์ตี้key.store
และkey.alias
(ตามที่อธิบายไว้ในเอกสารสำหรับนักพัฒนาแอป Android)สร้างโปรเจ็กต์:
./platforms/android/cordova/build --release
ค้นหาไฟล์ .apk ที่ลงชื่อแล้วอยู่ใน
platforms/android/ant-build/
อัปโหลดใบสมัครที่ลงนามแล้วไปยัง Google Play Console
เผยแพร่ไปยัง App Store บน iOS
- โปรดอัปเดตเวอร์ชันแอปโดยตั้งค่าคีย์
CFBundleVersion
ในwww/manifest.mobile.js
จากนั้นเรียกใช้cca prepare
เปิดไฟล์โปรเจ็กต์ Xcode ที่อยู่ในไดเรกทอรี
platforms/ios
ของคุณ:เปิด platforms/ios/*.xcodeproj
ทำตามคู่มือการจัดจำหน่ายแอปของ Apple
สิ่งที่ควรพิจารณาเป็นพิเศษ
หากคุณเพิ่งเริ่มใช้แอป Chrome สิ่งที่ควรทราบคือฟีเจอร์บางอย่างของเว็บจะปิดอยู่ อย่างไรก็ตาม ในปัจจุบันมีลิงก์จำนวนมากที่ใช้งานได้ใน Cordova
แอป Chrome อาจไม่ทำงานทันทีในอุปกรณ์เคลื่อนที่ ปัญหาทั่วไปบางประการเกี่ยวกับการย้ายสู่ระบบมือถือ:
- ปัญหาเกี่ยวกับเลย์เอาต์ในหน้าจอขนาดเล็ก โดยเฉพาะเมื่ออยู่ในแนวตั้ง
- การแก้ไขที่แนะนำ: ใช้คิวรี่สื่อ CSS เพื่อเพิ่มประสิทธิภาพเนื้อหาสำหรับหน้าจอขนาดเล็ก
- ระบบจะไม่สนใจขนาดหน้าต่างแอป Chrome ที่ตั้งค่าผ่าน chrome.app.window แต่จะใช้ขนาดเดิมของอุปกรณ์แทน
- การแก้ไขที่แนะนำ: นำมิติข้อมูลของหน้าต่างที่เขียนโค้ดไว้ล่วงหน้าออก และออกแบบแอปโดยคำนึงถึงขนาดที่แตกต่างกัน
- ปุ่มและลิงก์ขนาดเล็กจะแตะด้วยนิ้วได้ยาก
- การแก้ไขที่แนะนำ: ปรับเป้าหมายการสัมผัสให้มีขนาดอย่างน้อย 44 x 44 จุด
- ลักษณะการทำงานที่ไม่คาดคิดเมื่อใช้การวางเมาส์เหนือซึ่งไม่มีในหน้าจอสัมผัส
- การแก้ไขที่แนะนำ: นอกจากการวางเมาส์เหนือโฆษณาแล้ว ให้เปิดใช้งานองค์ประกอบ UI เช่น เมนูแบบเลื่อนลงและเคล็ดลับเครื่องมือเมื่อแตะ
- การแตะล่าช้า 300 มิลลิวินาที
- การแก้ไขที่แนะนำ: ใช้ polyfill ของ JavaScript จาก FastClick by FT Labs
- อ่านบทความ HTML5Rocks นี้สำหรับข้อมูลพื้นฐาน
API ของ Chrome ที่รองรับ
เราได้ทำให้ Chrome API หลักๆ จำนวนมากพร้อมใช้งานในแอป Chrome สำหรับมือถือแล้ว ซึ่งรวมถึง API ต่อไปนี้
- identity - ลงชื่อเข้าใช้ผู้ใช้โดยใช้ OAuth2
- การชำระเงิน - ขายสินค้าเสมือนจริงภายในแอปบนอุปกรณ์เคลื่อนที่
- pushMessaging - ส่งข้อความ Push ไปยังแอปจากเซิร์ฟเวอร์
- ซ็อกเก็ต - ส่งและรับข้อมูลผ่านเครือข่ายโดยใช้ TCP และ UDP
- notifications (Android เท่านั้น) - ส่งการแจ้งเตือนแบบริชมีเดียจากแอปบนอุปกรณ์เคลื่อนที่
- storage - จัดเก็บและเรียกข้อมูลคีย์-ค่าในเครื่อง
- syncFileSystem - จัดเก็บและเรียกข้อมูลไฟล์ที่ Google ไดรฟ์สนับสนุน
- การปลุก - เรียกใช้งานเป็นระยะ
- idle - ตรวจจับเมื่อสถานะ "ไม่ทำงาน" ของเครื่องมีการเปลี่ยนแปลง
- power - ลบล้างฟีเจอร์การจัดการพลังงานของระบบ
อย่างไรก็ตาม จะไม่มีการใช้งาน API JavaScript ของ Chrome ทั้งหมด และฟีเจอร์บางอย่างของ Chrome เดสก์ท็อปอาจไม่พร้อมใช้งานในอุปกรณ์เคลื่อนที่
- ไม่มีแท็ก
<webview>
- ไม่มี IndexedDB
- ไม่มี getUserMedia()
- ไม่มี NaCl
คุณสามารถติดตามความคืบหน้าได้จากหน้าสถานะ API ของเรา
เครื่องมือสำหรับนักพัฒนาแอป Chrome
เครื่องมือสำหรับนักพัฒนาแอป Chrome (ADT) สำหรับ Android เป็นแอป Android แบบสแตนด์อโลนที่ให้คุณดาวน์โหลดและเรียกใช้แอป Chrome ได้โดยไม่ต้องตั้งค่าชุดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ตามที่อธิบายไว้ข้างต้น ใช้ ADT ของ Chrome เมื่อคุณต้องการดูตัวอย่างแอป Chrome ที่มีอยู่อย่างรวดเร็ว (แพ็กเกจเป็น .crx อยู่แล้ว) ในอุปกรณ์ Android
ปัจจุบัน Chrome ADT สําหรับ Android อยู่ในรุ่นก่อนอัลฟ่า หากต้องการลองใช้ โปรดดูบันทึกประจำรุ่นของ ChromeADT.apk เพื่อดูวิธีการติดตั้งและใช้งาน