Cordova - คู่มือฉบับย่อ
Cordova เป็นแพลตฟอร์มสำหรับสร้างแอปพลิเคชันมือถือแบบไฮบริดโดยใช้ HTML, CSS และ JavaScript
เอกสารอย่างเป็นทางการให้คำจำกัดความของ Cordova แก่เรา -
"Apache Cordova เป็นเฟรมเวิร์กการพัฒนาอุปกรณ์พกพาแบบโอเพนซอร์สช่วยให้คุณสามารถใช้เทคโนโลยีเว็บมาตรฐานเช่น HTML5, CSS3 และ JavaScript สำหรับการพัฒนาข้ามแพลตฟอร์มโดยหลีกเลี่ยงภาษาการพัฒนาเนทีฟของแพลตฟอร์มมือถือแต่ละตัวแอปพลิเคชันจะทำงานภายใน Wrapper ที่กำหนดเป้าหมายไปยังแต่ละแพลตฟอร์ม พึ่งพาการเชื่อมโยง API ที่เป็นไปตามมาตรฐานเพื่อเข้าถึงเซ็นเซอร์ข้อมูลและสถานะเครือข่ายของอุปกรณ์แต่ละเครื่อง "
คุณสมบัติ Cordova
ตอนนี้ให้เราเข้าใจคุณสมบัติของ Cordova โดยสังเขป
อินเทอร์เฟซบรรทัดคำสั่ง (Cordova CLI)
เครื่องมือนี้สามารถใช้สำหรับการเริ่มต้นโครงการสร้างกระบวนการสำหรับแพลตฟอร์มต่างๆการติดตั้งปลั๊กอินและสิ่งที่เป็นประโยชน์อื่น ๆ อีกมากมายที่ทำให้กระบวนการพัฒนาง่ายขึ้น คุณจะได้เรียนรู้วิธีใช้ Command Line Interface ในบทต่อ ๆ ไป
ส่วนประกอบ Cordova Core
Cordova นำเสนอชุดส่วนประกอบหลักที่ทุกแอปพลิเคชันมือถือต้องการ ส่วนประกอบเหล่านี้จะใช้ในการสร้างฐานของแอปเพื่อให้เราสามารถใช้เวลามากขึ้นในการใช้ตรรกะของเราเอง
ปลั๊กอิน Cordova
Cordova นำเสนอ API ที่จะใช้สำหรับการนำฟังก์ชันเนทีฟมือถือไปใช้กับแอป JavaScript
ใบอนุญาต
Cordova ได้รับอนุญาตภายใต้ Apache License เวอร์ชัน 2.0 Apache และโลโก้ขนนก Apache เป็นเครื่องหมายการค้าของ The Apache Software Foundation
ข้อดีของ Cordova
ตอนนี้เราจะพูดถึงข้อดีของ Cordova
Cordova นำเสนอแพลตฟอร์มเดียวสำหรับการสร้างแอพมือถือแบบไฮบริดเพื่อให้เราสามารถพัฒนาแอพหนึ่งตัวที่จะใช้กับแพลตฟอร์มมือถือที่แตกต่างกัน - IOS, Android, Windows Phone, Amazon-fireos, blackberry, Firefox OS, Ubuntu และ tizien
การพัฒนาแอปไฮบริดเร็วกว่าแอปเนทีฟทำให้ Cordova สามารถประหยัดเวลาในการพัฒนาได้
เนื่องจากเราใช้ JavaScript เมื่อทำงานกับ Cordova เราจึงไม่จำเป็นต้องเรียนรู้ภาษาโปรแกรมเฉพาะแพลตฟอร์ม
มีส่วนเสริมของชุมชนมากมายที่สามารถใช้ได้กับ Cordova ซึ่งมีไลบรารีและเฟรมเวิร์กหลายแบบซึ่งได้รับการปรับให้เหมาะกับการทำงานกับมัน
ข้อ จำกัด ของ Cordova
ต่อไปนี้เป็นข้อ จำกัด ของ Cordova
แอปแบบไฮบริดจะทำงานช้ากว่าแอปแบบเนทีฟดังนั้นจึงไม่เหมาะที่จะใช้ Cordova สำหรับแอปขนาดใหญ่ที่ต้องการข้อมูลและฟังก์ชันการทำงานจำนวนมาก
ความเข้ากันได้กับเบราว์เซอร์ข้ามสามารถสร้างปัญหามากมาย เวลาส่วนใหญ่เรากำลังสร้างแอปสำหรับแพลตฟอร์มที่แตกต่างกันดังนั้นการทดสอบและเพิ่มประสิทธิภาพอาจใช้เวลานานเนื่องจากเราจำเป็นต้องครอบคลุมอุปกรณ์และระบบปฏิบัติการจำนวนมาก
ปลั๊กอินบางตัวมีปัญหาความเข้ากันได้กับอุปกรณ์และแพลตฟอร์มต่างๆ นอกจากนี้ยังมี API ดั้งเดิมบางตัวที่ Cordova ยังไม่รองรับ
ในบทนี้เราจะเข้าใจการตั้งค่าสภาพแวดล้อมของ Cordova ในการเริ่มต้นการตั้งค่าเราต้องติดตั้งส่วนประกอบบางอย่างก่อน ส่วนประกอบแสดงอยู่ในตารางต่อไปนี้
ส. เลขที่ | ซอฟต์แวร์และคำอธิบาย |
---|---|
1 | NodeJS and NPM NodeJS เป็นแพลตฟอร์มที่จำเป็นสำหรับการพัฒนา Cordova ตรวจสอบการตั้งค่าสภาพแวดล้อม NodeJSของเราสำหรับรายละเอียดเพิ่มเติม |
2 | Android SDK สำหรับแพลตฟอร์ม Android คุณต้องติดตั้ง Android SDK บนเครื่องของคุณ ตรวจสอบการตั้งค่าสภาพแวดล้อมของ Androidสำหรับรายละเอียดเพิ่มเติม |
3 | XCode สำหรับแพลตฟอร์ม iOS คุณต้องติดตั้ง xCode บนเครื่องของคุณ ตรวจสอบการตั้งค่าสภาพแวดล้อม iOSสำหรับรายละเอียดเพิ่มเติม |
การติดตั้ง Cordova
ก่อนที่เราจะเริ่มคุณต้องรู้ว่าเราจะใช้ Windows command prompt ในบทแนะนำของเรา
ขั้นตอนที่ 1 - การติดตั้งคอมไพล์
แม้ว่าคุณจะไม่ได้ใช้คอมไพล์ แต่ก็ควรติดตั้งเนื่องจาก Cordova ใช้มันสำหรับกระบวนการเบื้องหลังบางอย่าง คุณสามารถดาวน์โหลดคอมไพล์ที่นี่ หลังจากคุณติดตั้งคอมไพล์แล้วให้เปิดตัวแปรสภาพแวดล้อมของคุณ
- คลิกขวาที่คอมพิวเตอร์
- Properties
- การตั้งค่าระบบขั้นสูง
- ตัวแปรสภาพแวดล้อม
- ตัวแปรของระบบ
- Edit
คัดลอกต่อไปนี้ที่ส่วนท้ายของไฟล์ variable value field. นี่คือเส้นทางเริ่มต้นของการติดตั้งคอมไพล์ หากคุณติดตั้งบนเส้นทางอื่นคุณควรใช้แทนโค้ดตัวอย่างด้านล่าง
;C:\Program Files (x86)\Git\bin;C:\Program Files (x86)\Git\cmd
ตอนนี้คุณสามารถพิมพ์ git ในพรอมต์คำสั่งของคุณเพื่อทดสอบว่าการติดตั้งสำเร็จหรือไม่
ขั้นตอนที่ 2 - การติดตั้ง Cordova
ขั้นตอนนี้จะดาวน์โหลดและติดตั้งโมดูล Cordova ทั่วโลก เปิดพรอมต์คำสั่งและเรียกใช้สิ่งต่อไปนี้ -
C:\Users\username>npm install -g cordova
คุณสามารถตรวจสอบเวอร์ชันที่ติดตั้งได้โดยเรียกใช้ -
C:\Users\username>cordova -v
นี่คือทุกสิ่งที่คุณต้องการเพื่อเริ่มพัฒนาแอพ Cordova บนระบบปฏิบัติการ Windows ในบทช่วยสอนถัดไปเราจะแสดงวิธีสร้างแอปพลิเคชันแรก
เราเข้าใจวิธีการติดตั้ง Cordova และตั้งค่าสภาพแวดล้อมแล้ว เมื่อทุกอย่างพร้อมเราสามารถสร้างแอปพลิเคชัน Cordova ไฮบริดตัวแรกของเราได้
ขั้นตอนที่ 1 - การสร้างแอป
เปิดไดเร็กทอรีที่คุณต้องการให้ติดตั้งแอพในพรอมต์คำสั่ง เราจะสร้างมันบนเดสก์ท็อป
C:\Users\username\Desktop>cordova
create CordovaProject io.cordova.hellocordova CordovaApp
CordovaProject คือชื่อไดเร็กทอรีที่สร้างแอป
io.cordova.hellocordovaคือค่าโดเมนย้อนกลับเริ่มต้น คุณควรใช้ค่าโดเมนของคุณเองถ้าเป็นไปได้
CordovaApp คือชื่อแอปของคุณ
ขั้นตอนที่ 2 - การเพิ่มแพลตฟอร์ม
คุณต้องเปิดไดเรกทอรีโครงการของคุณในพรอมต์คำสั่ง ในตัวอย่างของเรามันคือไฟล์CordovaProject. คุณควรเลือกแพลตฟอร์มที่คุณต้องการเท่านั้น เพื่อให้สามารถใช้แพลตฟอร์มที่ระบุได้คุณต้องติดตั้ง SDK แพลตฟอร์มเฉพาะ เนื่องจากเรากำลังพัฒนาบน windows เราจึงสามารถใช้แพลตฟอร์มต่อไปนี้ เราได้ติดตั้ง Android SDK แล้วดังนั้นเราจะติดตั้งเฉพาะแพลตฟอร์ม Android สำหรับบทช่วยสอนนี้
C:\Users\username\Desktop\CordovaProject>cordova platform add android
มีแพลตฟอร์มอื่น ๆ ที่สามารถใช้บน Windows OS ได้
C:\Users\username\Desktop\CordovaProject>cordova platform add wp8
C:\Users\username\Desktop\CordovaProject>cordova platform add amazon-fireos
C:\Users\username\Desktop\CordovaProject>cordova platform add windows
C:\Users\username\Desktop\CordovaProject>cordova platform add blackberry10
C:\Users\username\Desktop\CordovaProject>cordova platform add firefoxos
หากคุณกำลังพัฒนาบน Mac คุณสามารถใช้ -
$ cordova platform add IOS
$ cordova platform add amazon-fireos
$ cordova platform add android
$ cordova platform add blackberry10
$ cordova platform add firefoxos
คุณยังสามารถลบแพลตฟอร์มออกจากโครงการของคุณได้โดยใช้ -
C:\Users\username\Desktop\CordovaProject>cordova platform rm android
ขั้นตอนที่ 3 - การสร้างและการวิ่ง
ในขั้นตอนนี้เราจะสร้างแอปสำหรับแพลตฟอร์มที่ระบุเพื่อให้เราสามารถรันบนอุปกรณ์มือถือหรือโปรแกรมจำลอง
C:\Users\username\Desktop\CordovaProject>cordova build android
ตอนนี้เราสามารถเรียกใช้แอพของเราได้แล้ว หากคุณใช้โปรแกรมจำลองเริ่มต้นคุณควรใช้ -
C:\Users\username\Desktop\CordovaProject>cordova emulate android
หากคุณต้องการใช้โปรแกรมจำลองภายนอกหรืออุปกรณ์จริงคุณควรใช้ -
C:\Users\username\Desktop\CordovaProject>cordova run android
NOTE - เราจะใช้ไฟล์ Genymotion android emulatorเนื่องจากเร็วกว่าและตอบสนองได้ดีกว่าค่าเริ่มต้น คุณสามารถค้นหาจำลองที่นี่ คุณยังสามารถใช้อุปกรณ์จริงเพื่อทดสอบได้โดยเปิดใช้งานUSB debuggingจากตัวเลือกและเชื่อมต่อกับคอมพิวเตอร์ของคุณผ่านสาย USB สำหรับอุปกรณ์บางอย่างคุณจะต้องติดตั้งไดรเวอร์ USB ด้วย
เมื่อเราเรียกใช้แอปแล้วแอปจะติดตั้งบนแพลตฟอร์มที่เราระบุไว้ หากทุกอย่างเสร็จสิ้นโดยไม่มีข้อผิดพลาดผลลัพธ์ควรแสดงหน้าจอเริ่มต้นเริ่มต้นของแอป
ในบทช่วยสอนถัดไปเราจะแสดงวิธีกำหนดค่าแอปพลิเคชัน Cordova
config.xmlไฟล์คือสถานที่ที่เราสามารถเปลี่ยนการกำหนดค่าของแอพได้ เมื่อเราสร้างแอปของเราในบทช่วยสอนสุดท้ายเราตั้งค่าโดเมนและชื่อย้อนกลับ ค่าสามารถเปลี่ยนแปลงได้ในไฟล์config.xmlไฟล์. เมื่อเราสร้างแอปไฟล์กำหนดค่าเริ่มต้นจะถูกสร้างขึ้นด้วย
ตารางต่อไปนี้อธิบายองค์ประกอบการกำหนดค่าใน config.xml.
ตารางการกำหนดค่า config.xml
ส. เลขที่ | องค์ประกอบและรายละเอียด |
---|---|
1 | widget ค่าโดเมนย้อนกลับของแอปที่เราระบุเมื่อสร้างแอป |
2 | name ชื่อแอพที่เราระบุเมื่อสร้างแอพ |
3 | description คำอธิบายสำหรับแอป |
4 | author ผู้เขียนแอป |
5 | content หน้าเริ่มต้นของแอป วางอยู่ภายในwww ไดเรกทอรี |
6 | plugin ปลั๊กอินที่ติดตั้งในปัจจุบัน |
7 | access ใช้เพื่อควบคุมการเข้าถึงโดเมนภายนอก ค่าเริ่มต้นoriginค่าถูกตั้งค่าเป็น * ซึ่งหมายความว่าอนุญาตให้เข้าถึงโดเมนใดก็ได้ ค่านี้จะไม่อนุญาตให้เปิด URL บางรายการเพื่อปกป้องข้อมูล |
8 | allow-intent อนุญาตให้ URL เฉพาะเพื่อขอให้แอปเปิด ตัวอย่างเช่น,<allow-intent href = "tel:*" /> จะอนุญาตให้เชื่อมโยง tel: เพื่อเปิดโปรแกรมโทรออก |
9 | platform แพลตฟอร์มสำหรับสร้างแอพ |
เราสามารถใช้ Storage API สำหรับจัดเก็บข้อมูลบนแอปไคลเอ็นต์ สิ่งนี้จะช่วยการใช้งานแอพเมื่อผู้ใช้ออฟไลน์และยังสามารถปรับปรุงประสิทธิภาพได้อีกด้วย เนื่องจากบทช่วยสอนนี้มีไว้สำหรับผู้เริ่มต้นเราจะแสดงวิธีการใช้งานlocal storage. ในบทช่วยสอนหลังจากนี้เราจะแสดงปลั๊กอินอื่น ๆ ที่สามารถใช้ได้
ขั้นตอนที่ 1 - การเพิ่มปุ่ม
เราจะสร้างสี่ปุ่มในไฟล์ index.htmlไฟล์. ปุ่มต่างๆจะอยู่ภายในไฟล์div class = "app" ธาตุ.
<button id = "setLocalStorage">SET LOCAL STORAGE</button>
<button id = "showLocalStorage">SHOW LOCAL STORAGE</button>
<button id = "removeProjectFromLocalStorage">REMOVE PROJECT</button>
<button id = "getLocalStorageByKey">GET BY KEY</button>
มันจะสร้างหน้าจอต่อไปนี้ -
ขั้นตอนที่ 2 - การเพิ่มผู้ฟังเหตุการณ์
นโยบายความปลอดภัย Cordova ไม่อนุญาตให้มีเหตุการณ์แบบอินไลน์ดังนั้นเราจะเพิ่มตัวฟังเหตุการณ์ภายในไฟล์ index.js นอกจากนี้เรายังจะมอบหมายwindow.localStorage ถึงก localStorage ตัวแปรที่เราจะใช้ในภายหลัง
document.getElementById("setLocalStorage").addEventListener("click", setLocalStorage);
document.getElementById("showLocalStorage").addEventListener("click", showLocalStorage);
document.getElementById("removeProjectFromLocalStorage").addEventListener
("click", removeProjectFromLocalStorage);
document.getElementById("getLocalStorageByKey").addEventListener
("click", getLocalStorageByKey);
var localStorage = window.localStorage;
ขั้นตอนที่ 3 - การสร้างฟังก์ชัน
ตอนนี้เราต้องสร้างฟังก์ชั่นที่จะเรียกใช้เมื่อแตะปุ่ม ฟังก์ชันแรกใช้สำหรับการเพิ่มข้อมูลไปยังที่จัดเก็บในตัวเครื่อง
function setLocalStorage() {
localStorage.setItem("Name", "John");
localStorage.setItem("Job", "Developer");
localStorage.setItem("Project", "Cordova Project");
}
อันถัดไปจะบันทึกข้อมูลที่เราเพิ่มลงในคอนโซล
function showLocalStorage() {
console.log(localStorage.getItem("Name"));
console.log(localStorage.getItem("Job"));
console.log(localStorage.getItem("Project"));
}
หากเราแตะ SET LOCAL STORAGEเราจะตั้งค่าสามรายการเป็นที่จัดเก็บในตัวเครื่อง หากเราแตะSHOW LOCAL STORAGE หลังจากนั้นคอนโซลจะบันทึกรายการที่เราต้องการ
ตอนนี้ให้เราสร้างฟังก์ชั่นที่จะลบโครงการออกจากที่เก็บข้อมูลในเครื่อง
function removeProjectFromLocalStorage() {
localStorage.removeItem("Project");
}
หากเราคลิกไฟล์ SHOW LOCAL STORAGE หลังจากลบโปรเจ็กต์แล้วผลลัพธ์จะปรากฏขึ้น null ค่าสำหรับฟิลด์โครงการ
นอกจากนี้เรายังสามารถรับองค์ประกอบการจัดเก็บในเครื่องได้โดยใช้ไฟล์ key() วิธีที่จะใช้ดัชนีเป็นอาร์กิวเมนต์และส่งคืนองค์ประกอบที่มีค่าดัชนีที่สอดคล้องกัน
function getLocalStorageByKey() {
console.log(localStorage.key(0));
}
ตอนนี้เมื่อเราแตะ GET BY KEY ปุ่มเอาต์พุตต่อไปนี้จะปรากฏขึ้น
บันทึก
เมื่อเราใช้ key() วิธีการคอนโซลจะบันทึกไฟล์ job แทนที่จะเป็น name แม้ว่าเราจะผ่านการโต้แย้ง 0เพื่อดึงวัตถุแรก เนื่องจากที่เก็บข้อมูลในเครื่องกำลังจัดเก็บข้อมูลตามลำดับตัวอักษร
ตารางต่อไปนี้แสดงวิธีการจัดเก็บในเครื่องที่มีอยู่ทั้งหมด
ส. เลขที่ | วิธีการและรายละเอียด |
---|---|
1 | setItem(key, value) ใช้สำหรับตั้งค่ารายการเป็นที่จัดเก็บในตัวเครื่อง |
2 | getItem(key) ใช้สำหรับรับรายการจากที่จัดเก็บในตัวเครื่อง |
3 | removeItem(key) ใช้สำหรับลบรายการออกจากที่จัดเก็บในตัวเครื่อง |
4 | key(index) ใช้สำหรับรับไอเทมโดยใช้ indexของรายการในที่จัดเก็บในตัวเครื่อง สิ่งนี้ช่วยจัดเรียงรายการตามตัวอักษร |
5 | length() ใช้สำหรับการดึงข้อมูลจำนวนรายการที่มีอยู่ในที่จัดเก็บในตัวเครื่อง |
6 | clear() ใช้สำหรับลบคู่คีย์ / ค่าทั้งหมดออกจากที่จัดเก็บในตัวเครื่อง |
มีกิจกรรมต่างๆที่สามารถใช้ในโครงการ Cordova ตารางต่อไปนี้แสดงเหตุการณ์ที่มี
ส. เลขที่ | กิจกรรมและรายละเอียด |
---|---|
1 | deviceReady เหตุการณ์นี้จะเกิดขึ้นเมื่อ Cordova โหลดเต็มที่ สิ่งนี้ช่วยให้แน่ใจว่าไม่มีการเรียกใช้ฟังก์ชัน Cordova ก่อนที่ทุกอย่างจะโหลด |
2 | pause เหตุการณ์นี้จะถูกทริกเกอร์เมื่อแอปถูกใส่ลงในพื้นหลัง |
3 | resume เหตุการณ์นี้จะเกิดขึ้นเมื่อแอปถูกส่งกลับจากพื้นหลัง |
4 | backbutton เหตุการณ์นี้จะเกิดขึ้นเมื่อกดปุ่มย้อนกลับ |
5 | menubutton เหตุการณ์นี้จะเกิดขึ้นเมื่อกดปุ่มเมนู |
6 | searchbutton เหตุการณ์นี้จะเกิดขึ้นเมื่อกดปุ่มค้นหาของ Android |
7 | startcallbutton เหตุการณ์นี้จะเกิดขึ้นเมื่อกดปุ่มเริ่มโทร |
8 | endcallbutton เหตุการณ์นี้จะเกิดขึ้นเมื่อกดปุ่มวางสาย |
9 | volumedownbutton เหตุการณ์นี้จะเกิดขึ้นเมื่อกดปุ่มลดระดับเสียง |
10 | volumeupbutton เหตุการณ์นี้จะเกิดขึ้นเมื่อกดปุ่มเพิ่มระดับเสียง |
การใช้เหตุการณ์
เหตุการณ์ทั้งหมดใช้วิธีเดียวกันเกือบทั้งหมด เราควรเพิ่มผู้ฟังเหตุการณ์ในไฟล์js แทนที่จะเป็น inline event calling ตั้งแต่ Cordova Content Security Policyไม่อนุญาต Javascript แบบอินไลน์ หากเราพยายามเรียกเหตุการณ์แบบอินไลน์ข้อผิดพลาดต่อไปนี้จะแสดงขึ้น
วิธีการทำงานกับเหตุการณ์ที่ถูกต้องคือการใช้ addEventListener. เราจะเข้าใจวิธีใช้ไฟล์volumeupbutton เหตุการณ์ผ่านตัวอย่าง
document.addEventListener("volumeupbutton", callbackFunction, false);
function callbackFunction() {
alert('Volume Up Button is pressed!');
}
เมื่อเรากด volume up หน้าจอจะแสดงการแจ้งเตือนต่อไปนี้
การจัดการปุ่มย้อนกลับ
เราควรใช้ปุ่มย้อนกลับของ Android สำหรับการทำงานของแอพเช่นกลับไปที่หน้าจอก่อนหน้า ในการใช้งานฟังก์ชันของคุณเองอันดับแรกเราควรปิดใช้งานปุ่มย้อนกลับที่ใช้เพื่อออกจากแอพ
document.addEventListener("backbutton", onBackKeyDown, false);
function onBackKeyDown(e) {
e.preventDefault();
alert('Back Button is Pressed!');
}
ตอนนี้เมื่อเรากดปุ่มย้อนกลับของ Android การแจ้งเตือนจะปรากฏบนหน้าจอแทนที่จะออกจากแอป ซึ่งทำได้โดยใช้ไฟล์e.preventDefault() คำสั่ง
การจัดการปุ่มย้อนกลับ
โดยปกติคุณจะต้องการใช้ปุ่มย้อนกลับของ Android สำหรับการทำงานบางอย่างของแอพเช่นกลับไปที่หน้าจอก่อนหน้า เพื่อให้สามารถใช้งานฟังก์ชันของคุณเองได้ก่อนอื่นคุณต้องปิดการใช้งานการออกจากแอปเมื่อกดปุ่มย้อนกลับ
document.addEventListener("backbutton", onBackKeyDown, false);
function onBackKeyDown(e) {
e.preventDefault();
alert('Back Button is Pressed!');
}
ตอนนี้เมื่อเรากดปุ่มย้อนกลับของ Android การแจ้งเตือนจะปรากฏบนหน้าจอแทนที่จะออกจากแอป ซึ่งทำได้โดยใช้e.preventDefault().
Cordova Plugman เป็นเครื่องมือบรรทัดคำสั่งที่มีประโยชน์สำหรับการติดตั้งและจัดการปลั๊กอิน คุณควรใช้plugmanหากแอปของคุณต้องทำงานบนแพลตฟอร์มใดแพลตฟอร์มหนึ่ง หากคุณต้องการสร้างไฟล์cross-platform แอพที่คุณควรใช้ cordova-cli ซึ่งจะแก้ไขปลั๊กอินสำหรับแพลตฟอร์มต่างๆ
ขั้นตอนที่ 1 - การติดตั้ง Plugman
เปิด command prompt หน้าต่างและเรียกใช้ข้อมูลโค้ดต่อไปนี้เพื่อติดตั้งปลั๊กอิน
C:\Users\username\Desktop\CordovaProject>npm install -g plugman
ขั้นตอนที่ 2 - การติดตั้งปลั๊กอิน
เพื่อทำความเข้าใจวิธีการติดตั้งปลั๊กอิน Cordova โดยใช้ปลั๊กอินเราจะใช้ปลั๊กอินกล้องเป็นตัวอย่าง
C:\Users\username\Desktop\CordovaProject>plugman
install --platform android --project platforms\android
--plugin cordova-plugin-camera
plugman uninstall --platform android --project platforms\android
--plugin cordova-plugin-camera
เราต้องพิจารณาพารามิเตอร์สามตัวดังที่แสดงด้านบน
--platform - แพลตฟอร์มที่เราใช้ (android, ios, amazon-fireos, wp8, blackberry10)
--project- เส้นทางที่สร้างโครงการ ในกรณีของเราก็คือplatforms\android ไดเรกทอรี
--plugin - ปลั๊กอินที่เราต้องการติดตั้ง
หากคุณตั้งค่าพารามิเตอร์ที่ถูกต้องหน้าต่างพรอมต์คำสั่งควรแสดงผลลัพธ์ต่อไปนี้
วิธีการเพิ่มเติม
คุณสามารถใช้ไฟล์ uninstall วิธีการในลักษณะเดียวกัน
C:\Users\username\Desktop\CordovaProject>plugman uninstall
--platform android --project platforms\android --plugin cordova-plugin-camera
command prompt คอนโซลจะแสดงผลลัพธ์ต่อไปนี้
Plugman นำเสนอวิธีการเพิ่มเติมบางอย่างที่สามารถใช้ได้ วิธีการแสดงอยู่ในตารางต่อไปนี้
ส. เลขที่ | วิธีการและรายละเอียด |
---|---|
1 | install ใช้สำหรับติดตั้งปลั๊กอิน Cordova |
2 | uninstall ใช้สำหรับถอนการติดตั้งปลั๊กอิน Cordova |
3 | fetch ใช้สำหรับคัดลอกปลั๊กอิน Cordova ไปยังตำแหน่งเฉพาะ |
4 | prepare ใช้สำหรับอัปเดตไฟล์คอนฟิกูเรชันเพื่อช่วยสนับสนุนโมดูล JS |
5 | adduser ใช้สำหรับเพิ่มบัญชีผู้ใช้ลงในรีจิสทรี |
6 | publish ใช้สำหรับการเผยแพร่ปลั๊กอินไปยังรีจิสทรี |
7 | unpublish ใช้สำหรับการยกเลิกการเผยแพร่ปลั๊กอินจากรีจิสทรี |
8 | search ใช้สำหรับค้นหาปลั๊กอินในรีจิสทรี |
9 | config ใช้สำหรับการกำหนดค่าการตั้งค่ารีจิสทรี |
10 | create ใช้สำหรับสร้างปลั๊กอินที่กำหนดเอง |
11 | platform ใช้สำหรับเพิ่มหรือลบแพลตฟอร์มออกจากปลั๊กอินที่สร้างขึ้นเอง |
คำสั่งเพิ่มเติม
หากคุณติดขัดคุณสามารถใช้ไฟล์ plugman -helpคำสั่ง สามารถตรวจสอบเวอร์ชันได้โดยใช้ไฟล์plugman -v. ในการค้นหาปลั๊กอินคุณสามารถใช้plugman search และสุดท้ายคุณสามารถเปลี่ยนรีจิสตรีปลั๊กอินได้โดยใช้ไฟล์ plugman config set registry คำสั่ง
บันทึก
เนื่องจาก Cordova ใช้สำหรับการพัฒนาข้ามแพลตฟอร์มในบทต่อ ๆ ไปเราจะใช้ Cordova CLI แทน Plugman สำหรับการติดตั้งปลั๊กอิน
ปลั๊กอิน Cordova นี้ใช้สำหรับตรวจสอบสถานะแบตเตอรี่ของอุปกรณ์ ปลั๊กอินจะตรวจสอบทุกการเปลี่ยนแปลงที่เกิดขึ้นกับแบตเตอรี่ของอุปกรณ์
ขั้นตอนที่ 1 - การติดตั้งปลั๊กอินแบตเตอรี่
ในการติดตั้งปลั๊กอินนี้เราต้องเปิดไฟล์ command prompt หน้าต่างและเรียกใช้รหัสต่อไปนี้
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-pluginbattery-status
ขั้นตอนที่ 2 - เพิ่มผู้ฟังเหตุการณ์
เมื่อคุณเปิดไฟล์ index.js คุณจะพบไฟล์ onDeviceReadyฟังก์ชัน นี่คือที่ที่ควรเพิ่มผู้ฟังเหตุการณ์
window.addEventListener("batterystatus", onBatteryStatus, false);
ขั้นตอนที่ 3 - สร้างฟังก์ชันโทรกลับ
เราจะสร้างไฟล์ onBatteryStatus ฟังก์ชันโทรกลับที่ด้านล่างของไฟล์ index.js ไฟล์.
function onBatteryStatus(info) {
alert("BATTERY STATUS: Level: " + info.level + " isPlugged: " + info.isPlugged);
}
เมื่อเราเรียกใช้แอพจะมีการแจ้งเตือน ในขณะนี้แบตเตอรี่ชาร์จเต็ม 100%
เมื่อสถานะเปลี่ยนการแจ้งเตือนใหม่จะแสดงขึ้น สถานะแบตเตอรี่แสดงว่าขณะนี้ชาร์จแบตเตอรี่แล้ว 99%
หากเราเสียบอุปกรณ์เข้ากับเครื่องชาร์จการแจ้งเตือนใหม่จะแสดงว่าไฟล์ isPlugged เปลี่ยนค่าเป็น true.
กิจกรรมเพิ่มเติม
ปลั๊กอินนี้มีเหตุการณ์เพิ่มเติมอีกสองเหตุการณ์นอกเหนือจากไฟล์ batterystatusเหตุการณ์. เหตุการณ์เหล่านี้สามารถใช้ในลักษณะเดียวกับbatterystatus เหตุการณ์.
ส. เลขที่ | กิจกรรมและรายละเอียด |
---|---|
1 | batterylow เหตุการณ์จะเกิดขึ้นเมื่อเปอร์เซ็นต์การชาร์จแบตเตอรี่ถึงค่าต่ำ ค่านี้แตกต่างกันไปตามอุปกรณ์ต่างๆ |
2 | batterycritical เหตุการณ์จะเกิดขึ้นเมื่อเปอร์เซ็นต์การชาร์จแบตเตอรี่ถึงค่าวิกฤต ค่านี้แตกต่างกันไปตามอุปกรณ์ต่างๆ |
ปลั๊กอินนี้ใช้สำหรับถ่ายภาพหรือใช้ไฟล์จากแกลเลอรีรูปภาพ
ขั้นตอนที่ 1 - ติดตั้งปลั๊กอินกล้อง
เรียกใช้รหัสต่อไปนี้ในไฟล์ command prompt หน้าต่างเพื่อติดตั้งปลั๊กอินนี้
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugincamera
ขั้นตอนที่ 2 - การเพิ่มปุ่มและรูปภาพ
ตอนนี้เราจะสร้างปุ่มสำหรับเรียกกล้องและ imgที่จะแสดงภาพเมื่อถ่ายแล้ว สิ่งนี้จะถูกเพิ่มในindex.html ข้างใน div class = "app" ธาตุ.
<button id = "cameraTakePicture">TAKE PICTURE</button>
<img id = "myImage"></img>
ขั้นตอนที่ 3 - การเพิ่ม Listener เหตุการณ์
ตัวฟังเหตุการณ์จะถูกเพิ่มเข้าไปในไฟล์ onDeviceReady เพื่อให้แน่ใจว่า Cordova ถูกโหลดก่อนที่เราจะเริ่มใช้งาน
document.getElementById("cameraTakePicture").addEventListener
("click", cameraTakePicture);
ขั้นตอนที่ 4 - การเพิ่มฟังก์ชั่น (การถ่ายภาพ)
เราจะสร้างไฟล์ cameraTakePictureฟังก์ชันที่ส่งผ่านเป็นการโทรกลับไปยังผู้ฟังเหตุการณ์ของเรา มันจะเริ่มทำงานเมื่อแตะปุ่ม ภายในฟังก์ชันนี้เราจะเรียกไฟล์navigator.cameraโกลบอลอ็อบเจ็กต์ที่จัดเตรียมโดย plugin API หากการถ่ายภาพสำเร็จข้อมูลจะถูกส่งไปยังไฟล์onSuccessฟังก์ชั่นการโทรกลับหากไม่มีการแจ้งเตือนพร้อมข้อความแสดงข้อผิดพลาดจะปรากฏขึ้น เราจะวางรหัสนี้ไว้ที่ด้านล่างของindex.js.
function cameraTakePicture() {
navigator.camera.getPicture(onSuccess, onFail, {
quality: 50,
destinationType: Camera.DestinationType.DATA_URL
});
function onSuccess(imageData) {
var image = document.getElementById('myImage');
image.src = "data:image/jpeg;base64," + imageData;
}
function onFail(message) {
alert('Failed because: ' + message);
}
}
เมื่อเราเรียกใช้แอพและกดปุ่มกล้องเนทีฟจะถูกกระตุ้น
เมื่อเราถ่ายและบันทึกภาพก็จะแสดงบนหน้าจอ
สามารถใช้โพรซีเดอร์เดียวกันสำหรับการรับอิมเมจจากระบบไฟล์โลคัล ข้อแตกต่างเพียงอย่างเดียวคือฟังก์ชันที่สร้างขึ้นในขั้นตอนสุดท้าย คุณจะเห็นว่าไฟล์sourceType เพิ่มพารามิเตอร์ทางเลือกแล้ว
ขั้นตอนที่ 1 B
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugincamera
ขั้นตอนที่ 2 B
<button id = "cameraGetPicture">GET PICTURE</button>
ขั้นตอนที่ 3 B
document.getElementById("cameraGetPicture").addEventListener("click", cameraGetPicture);
ขั้นตอนที่ 4 B
function cameraGetPicture() {
navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: Camera.PictureSourceType.PHOTOLIBRARY
});
function onSuccess(imageURL) {
var image = document.getElementById('myImage');
image.src = imageURL;
}
function onFail(message) {
alert('Failed because: ' + message);
}
}
เมื่อเรากดปุ่มที่สองระบบไฟล์จะเปิดขึ้นแทนกล้องเพื่อให้เราสามารถเลือกภาพที่จะแสดงได้
ปลั๊กอินนี้มีพารามิเตอร์เสริมมากมายสำหรับการปรับแต่ง
ส. เลขที่ | พารามิเตอร์และรายละเอียด |
---|---|
1 | quality คุณภาพของภาพในช่วง 0-100 ค่าเริ่มต้นคือ 50 |
2 | destinationType DATA_URL หรือ 0 ส่งคืนสตริงที่เข้ารหัส base64 FILE_URI หรือ 1 ส่งคืนไฟล์รูปภาพ URI NATIVE_URI หรือ 2 ส่งคืน URI ดั้งเดิมของรูปภาพ |
3 | sourceType PHOTOLIBRARY หรือ 0 เปิดคลังรูปภาพ CAMERA หรือ 1 เปิดกล้องเนทีฟ SAVEDPHOTOALBUM หรือ 2 เปิดอัลบั้มรูปภาพที่บันทึกไว้ |
4 | allowEdit อนุญาตให้แก้ไขภาพ |
5 | encodingType JPEG หรือ 0 ส่งคืนภาพที่เข้ารหัส JPEG PNG หรือ 1 ส่งคืนรูปภาพที่เข้ารหัส PNG |
6 | targetWidth ความกว้างของการปรับขนาดภาพเป็นพิกเซล |
7 | targetHeight ความสูงของการปรับขนาดภาพเป็นพิกเซล |
8 | mediaType PICTURE หรือ 0 อนุญาตให้เลือกภาพเท่านั้น VIDEO หรือ 1 อนุญาตให้เลือกวิดีโอเท่านั้น ALLMEDIA หรือ 2 อนุญาตให้เลือกประเภทสื่อทั้งหมด |
9 | correctOrientation ใช้สำหรับแก้ไขการวางแนวของภาพ |
10 | saveToPhotoAlbum ใช้เพื่อบันทึกภาพลงในอัลบั้มภาพ |
11 | popoverOptions ใช้สำหรับตั้งค่าตำแหน่งป็อปโอเวอร์บน IOS |
12 | cameraDirection FRONT หรือ 0 กล้องด้านหน้า. BACK หรือ 1 กล้องหลัง. ALLMEDIA |
ปลั๊กอินนี้ใช้สำหรับเข้าถึงฐานข้อมูลรายชื่อของอุปกรณ์ ในบทช่วยสอนนี้เราจะแสดงวิธีสร้างค้นหาและลบผู้ติดต่อ
ขั้นตอนที่ 1 - ติดตั้งปลั๊กอินผู้ติดต่อ
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugincontacts
ขั้นตอนที่ 2 - การเพิ่มปุ่ม
ปุ่มนี้จะใช้สำหรับเรียกไฟล์ createContactฟังก์ชัน เราจะวางไว้ในdiv class = "app" ใน index.html ไฟล์.
<button id = "createContact">ADD CONTACT</button>
<button id = "findContact">FIND CONTACT</button>
<button id = "deleteContact">DELETE CONTACT</button>
ขั้นตอนที่ 2 - เพิ่มผู้ฟังเหตุการณ์
เปิด index.js และคัดลอกข้อมูลโค้ดต่อไปนี้ลงในไฟล์ onDeviceReady ฟังก์ชัน
document.getElementById("createContact").addEventListener("click", createContact);
document.getElementById("findContact").addEventListener("click", findContact);
document.getElementById("deleteContact").addEventListener("click", deleteContact);
ขั้นตอนที่ 3A - ฟังก์ชันการโทรกลับ (navigator.contacts.create)
ตอนนี้เราไม่มีรายชื่อติดต่อเก็บไว้ในเครื่อง
ฟังก์ชันโทรกลับแรกของเราจะเรียกไฟล์ navigator.contacts.createวิธีการที่เราสามารถระบุข้อมูลผู้ติดต่อใหม่ สิ่งนี้จะสร้างผู้ติดต่อและกำหนดให้กับไฟล์myContactตัวแปร แต่จะไม่ถูกเก็บไว้ในอุปกรณ์ ในการจัดเก็บเราต้องเรียกไฟล์save วิธีการและสร้างความสำเร็จและฟังก์ชันการโทรกลับข้อผิดพลาด
function createContact() {
var myContact = navigator.contacts.create({"displayName": "Test User"});
myContact.save(contactSuccess, contactError);
function contactSuccess() {
alert("Contact is saved!");
}
function contactError(message) {
alert('Failed because: ' + message);
}
}
เมื่อเราคลิกไฟล์ ADD CONTACT ปุ่มผู้ติดต่อใหม่จะถูกเก็บไว้ในรายชื่อผู้ติดต่อของอุปกรณ์
ขั้นตอนที่ 3B - ฟังก์ชันการโทรกลับ (navigator.contacts.find)
ฟังก์ชันโทรกลับที่สองของเราจะค้นหาผู้ติดต่อทั้งหมด เราจะใช้ไฟล์navigator.contacts.findวิธี. อ็อบเจ็กต์อ็อพชันมีพารามิเตอร์ตัวกรองซึ่งใช้เพื่อระบุตัวกรองการค้นหาmultiple = trueถูกใช้เนื่องจากเราต้องการคืนรายชื่อทั้งหมดจากอุปกรณ์ field กุญแจสำคัญในการค้นหารายชื่อโดย displayName เนื่องจากเราใช้เมื่อบันทึกรายชื่อติดต่อ
หลังจากตั้งค่าตัวเลือกแล้วเรากำลังใช้ findวิธีการสอบถามผู้ติดต่อ ข้อความแจ้งเตือนจะถูกเรียกสำหรับผู้ติดต่อทุกคนที่พบ
function findContacts() {
var options = new ContactFindOptions();
options.filter = "";
options.multiple = true;
fields = ["displayName"];
navigator.contacts.find(fields, contactfindSuccess, contactfindError, options);
function contactfindSuccess(contacts) {
for (var i = 0; i < contacts.length; i++) {
alert("Display Name = " + contacts[i].displayName);
}
}
function contactfindError(message) {
alert('Failed because: ' + message);
}
}
เมื่อเรากดปุ่ม FIND CONTACT ปุ่มป๊อปอัปการแจ้งเตือนหนึ่งรายการจะถูกเรียกใช้เนื่องจากเราได้บันทึกผู้ติดต่อเพียงรายเดียว
ขั้นตอนที่ 3C - ฟังก์ชันโทรกลับ (ลบ)
ในขั้นตอนนี้เราจะใช้วิธีค้นหาอีกครั้ง แต่คราวนี้เราจะตั้งค่าตัวเลือกต่างๆ options.filter ถูกตั้งค่าให้ค้นหาสิ่งนั้น Test Userซึ่งจะต้องถูกลบ หลังจากcontactfindSuccess ฟังก์ชั่นโทรกลับส่งคืนผู้ติดต่อที่เราต้องการเราจะลบออกโดยใช้ remove วิธีการที่ต้องการความสำเร็จและการเรียกกลับข้อผิดพลาดของตัวเอง
function deleteContact() {
var options = new ContactFindOptions();
options.filter = "Test User";
options.multiple = false;
fields = ["displayName"];
navigator.contacts.find(fields, contactfindSuccess, contactfindError, options);
function contactfindSuccess(contacts) {
var contact = contacts[0];
contact.remove(contactRemoveSuccess, contactRemoveError);
function contactRemoveSuccess(contact) {
alert("Contact Deleted");
}
function contactRemoveError(message) {
alert('Failed because: ' + message);
}
}
function contactfindError(message) {
alert('Failed because: ' + message);
}
}
ตอนนี้เรามีผู้ติดต่อเพียงรายเดียวที่เก็บไว้ในอุปกรณ์ เราจะเพิ่มอีกหนึ่งรายการด้วยตนเองเพื่อแสดงขั้นตอนการลบ
ตอนนี้เราจะคลิกไฟล์ DELETE CONTACT เพื่อลบไฟล์ Test User. หากเราตรวจสอบรายชื่อผู้ติดต่ออีกครั้งเราจะเห็นว่าไฟล์Test User ไม่มีอยู่อีกต่อไป
ปลั๊กอินนี้ใช้สำหรับรับข้อมูลเกี่ยวกับอุปกรณ์ของผู้ใช้
ขั้นตอนที่ 1 - การติดตั้งปลั๊กอินอุปกรณ์
ในการติดตั้งปลั๊กอินนี้เราจำเป็นต้องเรียกใช้ข้อมูลโค้ดต่อไปนี้ในไฟล์ command prompt.
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-device
ขั้นตอนที่ 2 - การเพิ่มปุ่ม
เราจะใช้ปลั๊กอินนี้แบบเดียวกับที่เราใช้ปลั๊กอิน Cordova อื่น ๆ ให้เราเพิ่มปุ่มในไฟล์index.htmlไฟล์. ปุ่มนี้จะใช้สำหรับรับข้อมูลเกี่ยวกับอุปกรณ์
<button id = "cordovaDevice">CORDOVA DEVICE</button>
ขั้นตอนที่ 3 - การเพิ่ม Listener เหตุการณ์
ปลั๊กอิน Cordova มีให้ใช้งานหลังจากไฟล์ deviceready ดังนั้นเราจะวางผู้ฟังเหตุการณ์ไว้ในไฟล์ onDeviceReady ฟังก์ชันใน index.js.
document.getElementById("cordovaDevice").addEventListener("click", cordovaDevice);
ขั้นตอนที่ 4 - การสร้างฟังก์ชัน
ฟังก์ชันต่อไปนี้จะแสดงวิธีใช้ความเป็นไปได้ทั้งหมดที่ปลั๊กอินมีให้ เราจะวางไว้index.js.
function cordovaDevice() {
alert("Cordova version: " + device.cordova + "\n" +
"Device model: " + device.model + "\n" +
"Device platform: " + device.platform + "\n" +
"Device UUID: " + device.uuid + "\n" +
"Device version: " + device.version);
}
เมื่อเราคลิกไฟล์ CORDOVA DEVICE ปุ่มการแจ้งเตือนจะแสดงเวอร์ชัน Cordova รุ่นอุปกรณ์แพลตฟอร์ม UUID และเวอร์ชันอุปกรณ์
ปลั๊กอิน Accelerometer เรียกอีกอย่างว่า device-motion. ใช้เพื่อติดตามการเคลื่อนไหวของอุปกรณ์ในรูปแบบสามมิติ
ขั้นตอนที่ 1 - ติดตั้ง Accelerometer Plugin
เราจะติดตั้งปลั๊กอินนี้โดยใช้ cordova-CLI. พิมพ์รหัสต่อไปนี้ในไฟล์command prompt หน้าต่าง.
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-device-motion
ขั้นตอนที่ 2 - เพิ่มปุ่ม
ในขั้นตอนนี้เราจะเพิ่มปุ่มสองปุ่มในไฟล์ index.htmlไฟล์. หนึ่งจะถูกใช้เพื่อรับความเร่งปัจจุบันและอีกอันจะคอยดูการเปลี่ยนแปลงของความเร่ง
<button id = "getAcceleration">GET ACCELERATION</button>
<button id = "watchAcceleration">WATCH ACCELERATION</button>
ขั้นตอนที่ 3 - เพิ่มผู้ฟังเหตุการณ์
ตอนนี้ให้เราเพิ่มผู้ฟังเหตุการณ์สำหรับปุ่มของเรา onDeviceReady ฟังก์ชั่นภายใน index.js.
document.getElementById("getAcceleration").addEventListener("click", getAcceleration);
document.getElementById("watchAcceleration").addEventListener(
"click", watchAcceleration);
ขั้นตอนที่ 4 - การสร้างฟังก์ชัน
ตอนนี้เราจะสร้างสองฟังก์ชัน ฟังก์ชันแรกจะถูกใช้เพื่อรับการเร่งความเร็วปัจจุบันและฟังก์ชันที่สองจะเฝ้าดูการเร่งความเร็วและข้อมูลเกี่ยวกับการเร่งความเร็วจะถูกเรียกทุกๆสามวินาที เราจะเพิ่มไฟล์clearWatch ฟังก์ชันห่อด้วย setTimeoutฟังก์ชั่นหยุดดูการเร่งความเร็วหลังจากกรอบเวลาที่กำหนด frequency พารามิเตอร์ถูกใช้เพื่อทริกเกอร์ฟังก์ชันเรียกกลับทุกสามวินาที
function getAcceleration() {
navigator.accelerometer.getCurrentAcceleration(
accelerometerSuccess, accelerometerError);
function accelerometerSuccess(acceleration) {
alert('Acceleration X: ' + acceleration.x + '\n' +
'Acceleration Y: ' + acceleration.y + '\n' +
'Acceleration Z: ' + acceleration.z + '\n' +
'Timestamp: ' + acceleration.timestamp + '\n');
};
function accelerometerError() {
alert('onError!');
};
}
function watchAcceleration() {
var accelerometerOptions = {
frequency: 3000
}
var watchID = navigator.accelerometer.watchAcceleration(
accelerometerSuccess, accelerometerError, accelerometerOptions);
function accelerometerSuccess(acceleration) {
alert('Acceleration X: ' + acceleration.x + '\n' +
'Acceleration Y: ' + acceleration.y + '\n' +
'Acceleration Z: ' + acceleration.z + '\n' +
'Timestamp: ' + acceleration.timestamp + '\n');
setTimeout(function() {
navigator.accelerometer.clearWatch(watchID);
}, 10000);
};
function accelerometerError() {
alert('onError!');
};
}
ตอนนี้ถ้าเรากด GET ACCELERATIONเราจะได้รับค่าความเร่งปัจจุบัน หากเรากดปุ่มWATCH ACCELERATIONปุ่มการแจ้งเตือนจะถูกเรียกทุกสามวินาที หลังจากการแจ้งเตือนครั้งที่สามจะแสดงไฟล์clearWatch ฟังก์ชันจะถูกเรียกและเราจะไม่ได้รับการแจ้งเตือนอีกต่อไปเนื่องจากเราตั้งค่าการหมดเวลาไว้ที่ 10,000 มิลลิวินาที
เข็มทิศใช้เพื่อแสดงทิศทางที่สัมพันธ์กับจุดคาร์ดินัลเหนือทางภูมิศาสตร์
ขั้นตอนที่ 1 - ติดตั้งปลั๊กอิน Device Orientation
เปิด command prompt หน้าต่างและเรียกใช้สิ่งต่อไปนี้
C:\Users\username\Desktop\CordovaProject>cordova plugin
add cordova-plugindevice-orientation
ขั้นตอนที่ 2 - เพิ่มปุ่ม
ปลั๊กอินนี้คล้ายกับไฟล์ accelerationเสียบเข้าไป. ให้เราสร้างปุ่มสองปุ่มในindex.html.
<button id = "getOrientation">GET ORIENTATION</button>
<button id = "watchOrientation">WATCH ORIENTATION</button>
ขั้นตอนที่ 3 - เพิ่มผู้ฟังเหตุการณ์
ตอนนี้เราจะเพิ่ม event listeners ข้างใน onDeviceReady ฟังก์ชันใน index.js.
document.getElementById("getOrientation").addEventListener("click", getOrientation);
document.getElementById("watchOrientation").addEventListener("click", watchOrientation);
ขั้นตอนที่ 4 - การสร้างฟังก์ชัน
เราจะสร้างสองฟังก์ชัน ฟังก์ชันแรกจะสร้างความเร่งปัจจุบันและอีกฟังก์ชันหนึ่งจะตรวจสอบการเปลี่ยนแปลงการวางแนว คุณจะเห็นได้ว่าเรากำลังใช้ไฟล์frequency อีกครั้งเพื่อเฝ้าดูการเปลี่ยนแปลงที่เกิดขึ้นทุกๆสามวินาที
function getOrientation() {
navigator.compass.getCurrentHeading(compassSuccess, compassError);
function compassSuccess(heading) {
alert('Heading: ' + heading.magneticHeading);
};
function compassError(error) {
alert('CompassError: ' + error.code);
};
}
function watchOrientation(){
var compassOptions = {
frequency: 3000
}
var watchID = navigator.compass.watchHeading(compassSuccess,
compassError, compassOptions);
function compassSuccess(heading) {
alert('Heading: ' + heading.magneticHeading);
setTimeout(function() {
navigator.compass.clearWatch(watchID);
}, 10000);
};
function compassError(error) {
alert('CompassError: ' + error.code);
};
}
เนื่องจากปลั๊กอินเข็มทิศเกือบจะเหมือนกับปลั๊กอินเร่งความเร็วเราจะแสดงรหัสข้อผิดพลาดให้คุณในครั้งนี้ อุปกรณ์บางอย่างไม่มีเซ็นเซอร์แม่เหล็กที่จำเป็นสำหรับเข็มทิศในการทำงาน หากอุปกรณ์ของคุณไม่มีข้อผิดพลาดต่อไปนี้จะแสดงขึ้น
ปลั๊กอิน Cordova Dialogs จะเรียกองค์ประกอบ UI โต้ตอบของแพลตฟอร์ม
ขั้นตอนที่ 1 - การติดตั้งกล่องโต้ตอบ
พิมพ์คำสั่งต่อไปนี้ในไฟล์ command prompt หน้าต่างเพื่อติดตั้งปลั๊กอินนี้
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-dialogs
ขั้นตอนที่ 2 - เพิ่มปุ่ม
ตอนนี้ให้เราเปิด index.html และเพิ่มปุ่มสี่ปุ่มหนึ่งปุ่มสำหรับการโต้ตอบทุกประเภท
<button id = "dialogAlert">ALERT</button>
<button id = "dialogConfirm">CONFIRM</button>
<button id = "dialogPrompt">PROMPT</button>
<button id = "dialogBeep">BEEP</button>
ขั้นตอนที่ 3 - เพิ่มผู้ฟังเหตุการณ์
ตอนนี้เราจะเพิ่มผู้ฟังเหตุการณ์ภายในไฟล์ onDeviceReady ฟังก์ชันใน index.js. ผู้ฟังจะเรียกใช้ฟังก์ชันเรียกกลับเมื่อคลิกปุ่มที่เกี่ยวข้อง
document.getElementById("dialogAlert").addEventListener("click", dialogAlert);
document.getElementById("dialogConfirm").addEventListener("click", dialogConfirm);
document.getElementById("dialogPrompt").addEventListener("click", dialogPrompt);
document.getElementById("dialogBeep").addEventListener("click", dialogBeep);
ขั้นตอนที่ 4A - สร้างฟังก์ชันการแจ้งเตือน
เนื่องจากเราได้เพิ่มผู้ฟังเหตุการณ์สี่คนตอนนี้เราจะสร้างฟังก์ชันโทรกลับสำหรับทุกคนใน index.js. คนแรกคือdialogAlert.
function dialogAlert() {
var message = "I am Alert Dialog!";
var title = "ALERT";
var buttonName = "Alert Button";
navigator.notification.alert(message, alertCallback, title, buttonName);
function alertCallback() {
console.log("Alert is Dismissed!");
}
}
หากเราคลิกไฟล์ ALERT เราจะเห็นกล่องโต้ตอบการแจ้งเตือน
เมื่อเราคลิกปุ่มโต้ตอบผลลัพธ์ต่อไปนี้จะแสดงบนคอนโซล
ขั้นตอนที่ 4B - สร้างฟังก์ชันยืนยัน
ฟังก์ชันที่สองที่เราต้องสร้างคือไฟล์ dialogConfirm ฟังก์ชัน
function dialogConfirm() {
var message = "Am I Confirm Dialog?";
var title = "CONFIRM";
var buttonLabels = "YES,NO";
navigator.notification.confirm(message, confirmCallback, title, buttonLabels);
function confirmCallback(buttonIndex) {
console.log("You clicked " + buttonIndex + " button!");
}
}
เมื่อ CONFIRM กดปุ่มกล่องโต้ตอบใหม่จะปรากฏขึ้น
เราจะคลิกไฟล์ YESปุ่มเพื่อตอบคำถาม เอาต์พุตต่อไปนี้จะแสดงบนคอนโซล
ขั้นตอนที่ 4C - สร้างฟังก์ชันพร้อมท์
ฟังก์ชั่นที่สามคือ dialogPromptฟังก์ชัน สิ่งนี้ช่วยให้ผู้ใช้พิมพ์ข้อความลงในองค์ประกอบการป้อนข้อความโต้ตอบ
function dialogPrompt() {
var message = "Am I Prompt Dialog?";
var title = "PROMPT";
var buttonLabels = ["YES","NO"];
var defaultText = "Default"
navigator.notification.prompt(message, promptCallback,
title, buttonLabels, defaultText);
function promptCallback(result) {
console.log("You clicked " + result.buttonIndex + " button! \n" +
"You entered " + result.input1);
}
}
PROMPT จะเรียกกล่องโต้ตอบดังภาพหน้าจอต่อไปนี้
ในกล่องโต้ตอบนี้เรามีตัวเลือกในการพิมพ์ข้อความ เราจะบันทึกข้อความนี้ในคอนโซลพร้อมกับปุ่มที่คลิก
Step 4D - สร้างฟังก์ชั่น Beep
สุดท้ายคือไฟล์ dialogBeepฟังก์ชัน ใช้สำหรับเรียกการแจ้งเตือนเสียงบี๊บ times พารามิเตอร์จะกำหนดจำนวนการทำซ้ำสำหรับสัญญาณบี๊บ
function dialogBeep() {
var times = 2;
navigator.notification.beep(times);
}
เมื่อเราคลิกไฟล์ BEEP เราจะได้ยินเสียงแจ้งเตือนสองครั้งตั้งแต่ปุ่ม times ค่าถูกตั้งเป็น 2.
ปลั๊กอินนี้ใช้สำหรับจัดการระบบไฟล์เนทีฟบนอุปกรณ์ของผู้ใช้
ขั้นตอนที่ 1 - การติดตั้งปลั๊กอินไฟล์
เราจำเป็นต้องเรียกใช้รหัสต่อไปนี้ในไฟล์ command prompt เพื่อติดตั้งปลั๊กอินนี้
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-file
ขั้นตอนที่ 2 - เพิ่มปุ่ม
ในตัวอย่างนี้เราจะแสดงวิธีสร้างไฟล์เขียนลงไฟล์อ่านและลบไฟล์ ด้วยเหตุนี้เราจะสร้างปุ่มสี่ปุ่มในindex.html. นอกจากนี้เรายังจะเพิ่มtextarea ซึ่งเนื้อหาของไฟล์ของเราจะปรากฏขึ้น
<button id = "createFile">CREATE FILE</button>
<button id = "writeFile">WRITE FILE</button>
<button id = "readFile">READ FILE</button>
<button id = "removeFile">DELETE FILE</button>
<textarea id = "textarea"></textarea>
ขั้นตอนที่ 3 - เพิ่มผู้ฟังเหตุการณ์
เราจะเพิ่ม event listeners ใน index.js ข้างใน onDeviceReady เพื่อให้แน่ใจว่าทุกอย่างเริ่มต้นก่อนที่จะใช้ปลั๊กอิน
document.getElementById("createFile").addEventListener("click", createFile);
document.getElementById("writeFile").addEventListener("click", writeFile);
document.getElementById("readFile").addEventListener("click", readFile);
document.getElementById("removeFile").addEventListener("click", removeFile);
ขั้นตอนที่ 4A - สร้างฟังก์ชันไฟล์
ไฟล์จะถูกสร้างขึ้นในโฟลเดอร์รูทของแอพในอุปกรณ์ เพื่อให้สามารถเข้าถึงโฟลเดอร์รูทคุณต้องระบุsuperuserเข้าถึงโฟลเดอร์ของคุณ ในกรณีของเราเส้นทางไปยังโฟลเดอร์รูทคือ\data\data\com.example.hello\cache. ในขณะนี้โฟลเดอร์นี้ว่างเปล่า
ให้เราเพิ่มฟังก์ชันที่จะสร้างไฟล์ log.txt เราจะเขียนโค้ดนี้ในindex.jsและส่งคำขอไปยังระบบไฟล์ วิธีนี้ใช้ WINDOW.TEMPORARY หรือ WINDOW.PERSISTENT ขนาดที่จำเป็นสำหรับการจัดเก็บมีมูลค่าเป็นไบต์ (ในกรณีของเราคือ 5MB)
function createFile() {
var type = window.TEMPORARY;
var size = 5*1024*1024;
window.requestFileSystem(type, size, successCallback, errorCallback)
function successCallback(fs) {
fs.root.getFile('log.txt', {create: true, exclusive: true}, function(fileEntry) {
alert('File creation successfull!')
}, errorCallback);
}
function errorCallback(error) {
alert("ERROR: " + error.code)
}
}
ตอนนี้เราสามารถกด CREATE FILE และการแจ้งเตือนจะยืนยันว่าเราสร้างไฟล์สำเร็จ
ตอนนี้เราสามารถตรวจสอบโฟลเดอร์รูทแอพของเราอีกครั้งและเราจะพบไฟล์ใหม่ของเราที่นั่น
ขั้นตอนที่ 4B - เขียนฟังก์ชันไฟล์
ในขั้นตอนนี้เราจะเขียนข้อความลงในไฟล์ของเรา เราจะส่งคำขอไปยังระบบไฟล์อีกครั้งจากนั้นสร้างตัวเขียนไฟล์เพื่อให้สามารถเขียนได้Lorem Ipsum ข้อความที่เรากำหนดให้กับไฟล์ blob ตัวแปร.
function writeFile() {
var type = window.TEMPORARY;
var size = 5*1024*1024;
window.requestFileSystem(type, size, successCallback, errorCallback)
function successCallback(fs) {
fs.root.getFile('log.txt', {create: true}, function(fileEntry) {
fileEntry.createWriter(function(fileWriter) {
fileWriter.onwriteend = function(e) {
alert('Write completed.');
};
fileWriter.onerror = function(e) {
alert('Write failed: ' + e.toString());
};
var blob = new Blob(['Lorem Ipsum'], {type: 'text/plain'});
fileWriter.write(blob);
}, errorCallback);
}, errorCallback);
}
function errorCallback(error) {
alert("ERROR: " + error.code)
}
}
หลังจากกดปุ่ม WRITE FILE การแจ้งเตือนจะแจ้งให้เราทราบว่าการเขียนสำเร็จดังภาพหน้าจอต่อไปนี้
ตอนนี้เราสามารถเปิด log.txt และดูว่า Lorem Ipsum เขียนอยู่ภายใน
ขั้นตอนที่ 4C - อ่านฟังก์ชันไฟล์
ในขั้นตอนนี้เราจะอ่านไฟล์ log.txt และแสดงในไฟล์ textareaธาตุ. เราจะส่งคำขอไปยังระบบไฟล์และได้รับวัตถุไฟล์จากนั้นเรากำลังสร้างreader. เมื่อโหลดโปรแกรมอ่านแล้วเราจะกำหนดค่าที่ส่งคืนให้textarea.
function readFile() {
var type = window.TEMPORARY;
var size = 5*1024*1024;
window.requestFileSystem(type, size, successCallback, errorCallback)
function successCallback(fs) {
fs.root.getFile('log.txt', {}, function(fileEntry) {
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onloadend = function(e) {
var txtArea = document.getElementById('textarea');
txtArea.value = this.result;
};
reader.readAsText(file);
}, errorCallback);
}, errorCallback);
}
function errorCallback(error) {
alert("ERROR: " + error.code)
}
}
เมื่อเราคลิกไฟล์ READ FILE ข้อความจากไฟล์จะถูกเขียนไว้ด้านใน textarea.
ขั้นตอนที่ 4D - ลบฟังก์ชั่นไฟล์
และสุดท้ายเราจะสร้างฟังก์ชันสำหรับการลบ log.txt ไฟล์.
function removeFile() {
var type = window.TEMPORARY;
var size = 5*1024*1024;
window.requestFileSystem(type, size, successCallback, errorCallback)
function successCallback(fs) {
fs.root.getFile('log.txt', {create: false}, function(fileEntry) {
fileEntry.remove(function() {
alert('File removed.');
}, errorCallback);
}, errorCallback);
}
function errorCallback(error) {
alert("ERROR: " + error.code)
}
}
ตอนนี้เราสามารถกด DELETE FILEเพื่อลบไฟล์ออกจากโฟลเดอร์รูทของแอพ การแจ้งเตือนจะแจ้งให้เราทราบว่าการดำเนินการลบสำเร็จแล้ว
หากเราตรวจสอบโฟลเดอร์รากของแอปเราจะเห็นว่าว่างเปล่า
ปลั๊กอินนี้ใช้สำหรับอัพโหลดและดาวน์โหลดไฟล์
ขั้นตอนที่ 1 - การติดตั้ง File Transfer Plugin
เราจำเป็นต้องเปิด command prompt และรันคำสั่งต่อไปนี้เพื่อติดตั้งปลั๊กอิน
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-file-transfer
ขั้นตอนที่ 2 - สร้างปุ่ม
ในบทนี้เราจะแสดงวิธีการอัปโหลดและดาวน์โหลดไฟล์ มาสร้างสองปุ่มในindex.html
<button id = "uploadFile">UPLOAD</button>
<button id = "downloadFile">DOWNLOAD</button>
ขั้นตอนที่ 3 - เพิ่มผู้ฟังเหตุการณ์
ผู้ฟังเหตุการณ์จะถูกสร้างขึ้นใน index.js ข้างใน onDeviceReadyฟังก์ชัน เรากำลังเพิ่มclick เหตุการณ์และ callback ฟังก์ชั่น.
document.getElementById("uploadFile").addEventListener("click", uploadFile);
document.getElementById("downloadFile").addEventListener("click", downloadFile);
ขั้นตอนที่ 4A - ดาวน์โหลดฟังก์ชัน
ฟังก์ชันนี้จะใช้สำหรับดาวน์โหลดไฟล์จากเซิร์ฟเวอร์ไปยังอุปกรณ์ เราอัปโหลดไฟล์ไปที่postimage.orgเพื่อทำให้สิ่งต่างๆง่ายขึ้น คุณอาจต้องการใช้เซิร์ฟเวอร์ของคุณเอง วางฟังก์ชันไว้ในindex.js และจะถูกเรียกใช้เมื่อกดปุ่มที่เกี่ยวข้อง uri คือลิงค์ดาวน์โหลดเซิร์ฟเวอร์และ fileURI เป็นเส้นทางไปยังโฟลเดอร์ DCIM บนอุปกรณ์ของเรา
function downloadFile() {
var fileTransfer = new FileTransfer();
var uri = encodeURI("http://s14.postimg.org/i8qvaxyup/bitcoin1.jpg");
var fileURL = "///storage/emulated/0/DCIM/myFile";
fileTransfer.download(
uri, fileURL, function(entry) {
console.log("download complete: " + entry.toURL());
},
function(error) {
console.log("download error source " + error.source);
console.log("download error target " + error.target);
console.log("download error code" + error.code);
},
false, {
headers: {
"Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
}
}
);
}
เมื่อเรากด DOWNLOAD ไฟล์จะถูกดาวน์โหลดจากไฟล์ postimg.orgเซิร์ฟเวอร์ไปยังอุปกรณ์มือถือของเรา เราสามารถตรวจสอบโฟลเดอร์ที่ระบุและดูได้myFile อยู่ที่นั่น
เอาต์พุตคอนโซลจะมีลักษณะดังนี้ -
ขั้นตอนที่ 4B - อัปโหลดฟังก์ชัน
ตอนนี้เรามาสร้างฟังก์ชั่นที่จะนำไฟล์และอัปโหลดไปยังเซิร์ฟเวอร์ อีกครั้งเราต้องการลดความซับซ้อนของสิ่งนี้ให้มากที่สุดดังนั้นเราจะใช้posttestserver.comเซิร์ฟเวอร์ออนไลน์สำหรับการทดสอบ ค่า uri จะถูกเชื่อมโยงสำหรับการโพสต์posttestserver.
function uploadFile() {
var fileURL = "///storage/emulated/0/DCIM/myFile"
var uri = encodeURI("http://posttestserver.com/post.php");
var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = fileURL.substr(fileURL.lastIndexOf('/')+1);
options.mimeType = "text/plain";
var headers = {'headerParam':'headerValue'};
options.headers = headers;
var ft = new FileTransfer();
ft.upload(fileURL, uri, onSuccess, onError, options);
function onSuccess(r) {
console.log("Code = " + r.responseCode);
console.log("Response = " + r.response);
console.log("Sent = " + r.bytesSent);
}
function onError(error) {
alert("An error has occurred: Code = " + error.code);
console.log("upload error source " + error.source);
console.log("upload error target " + error.target);
}
}
ตอนนี้เราสามารถกด UPLOADปุ่มเพื่อเรียกใช้ฟังก์ชันนี้ เราจะได้รับเอาต์พุตคอนโซลเป็นการยืนยันว่าการอัปโหลดสำเร็จ
นอกจากนี้เรายังสามารถตรวจสอบเซิร์ฟเวอร์เพื่อให้แน่ใจว่าได้อัปโหลดไฟล์แล้ว
ตำแหน่งทางภูมิศาสตร์ใช้สำหรับรับข้อมูลเกี่ยวกับละติจูดและลองจิจูดของอุปกรณ์
ขั้นตอนที่ 1 - การติดตั้งปลั๊กอิน
เราสามารถติดตั้งปลั๊กอินนี้ได้โดยพิมพ์รหัสต่อไปนี้เพื่อ command prompt หน้าต่าง.
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-geolocation
ขั้นตอนที่ 2 - เพิ่มปุ่ม
ในบทช่วยสอนนี้เราจะแสดงวิธีรับตำแหน่งปัจจุบันและวิธีดูการเปลี่ยนแปลง ก่อนอื่นเราต้องสร้างปุ่มที่จะเรียกใช้ฟังก์ชันเหล่านี้
<button id = "getPosition">CURRENT POSITION</button>
<button id = "watchPosition">WATCH POSITION</button>
ขั้นตอนที่ 3 - เพิ่มผู้ฟังเหตุการณ์
ตอนนี้เราต้องการเพิ่มผู้ฟังเหตุการณ์เมื่ออุปกรณ์พร้อม เราจะเพิ่มตัวอย่างโค้ดด้านล่างไปที่onDeviceReady ฟังก์ชันใน index.js.
document.getElementById("getPosition").addEventListener("click", getPosition);
document.getElementById("watchPosition").addEventListener("click", watchPosition);
ขั้นตอนที่ 3 - สร้างฟังก์ชัน
ต้องสร้างสองฟังก์ชันสำหรับผู้ฟังเหตุการณ์สองคน หนึ่งจะถูกใช้เพื่อรับตำแหน่งปัจจุบันและอีกอันสำหรับดูตำแหน่ง
function getPosition() {
var options = {
enableHighAccuracy: true,
maximumAge: 3600000
}
var watchID = navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
function onSuccess(position) {
alert('Latitude: ' + position.coords.latitude + '\n' +
'Longitude: ' + position.coords.longitude + '\n' +
'Altitude: ' + position.coords.altitude + '\n' +
'Accuracy: ' + position.coords.accuracy + '\n' +
'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '\n' +
'Heading: ' + position.coords.heading + '\n' +
'Speed: ' + position.coords.speed + '\n' +
'Timestamp: ' + position.timestamp + '\n');
};
function onError(error) {
alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n');
}
}
function watchPosition() {
var options = {
maximumAge: 3600000,
timeout: 3000,
enableHighAccuracy: true,
}
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
function onSuccess(position) {
alert('Latitude: ' + position.coords.latitude + '\n' +
'Longitude: ' + position.coords.longitude + '\n' +
'Altitude: ' + position.coords.altitude + '\n' +
'Accuracy: ' + position.coords.accuracy + '\n' +
'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '\n' +
'Heading: ' + position.coords.heading + '\n' +
'Speed: ' + position.coords.speed + '\n' +
'Timestamp: ' + position.timestamp + '\n');
};
function onError(error) {
alert('code: ' + error.code + '\n' +'message: ' + error.message + '\n');
}
}
ในตัวอย่างข้างต้นเราใช้สองวิธี - getCurrentPosition และ watchPosition. ทั้งสองฟังก์ชันใช้พารามิเตอร์สามตัว เมื่อเราคลิกCURRENT POSITION ปุ่มการแจ้งเตือนจะแสดงค่าตำแหน่งทางภูมิศาสตร์
ถ้าเราคลิก WATCH POSITIONปุ่มการแจ้งเตือนเดียวกันจะถูกเรียกทุกสามวินาที วิธีนี้ทำให้เราสามารถติดตามการเปลี่ยนแปลงการเคลื่อนไหวของอุปกรณ์ของผู้ใช้ได้
บันทึก
ปลั๊กอินนี้ใช้ GPS บางครั้งไม่สามารถคืนค่าได้ตรงเวลาและคำขอจะแสดงข้อผิดพลาดการหมดเวลา นี่คือเหตุผลที่เราระบุenableHighAccuracy: true และ maximumAge: 3600000.ซึ่งหมายความว่าหากคำขอไม่เสร็จตามกำหนดเวลาเราจะใช้ค่าสุดท้ายที่ทราบแทน ในตัวอย่างของเราเรากำลังตั้งค่า maximumAge เป็น 3600000 มิลลิวินาที
ปลั๊กอินนี้ใช้สำหรับรับข้อมูลเกี่ยวกับภาษาสถานที่ของผู้ใช้วันที่และเขตเวลาสกุลเงิน ฯลฯ
ขั้นตอนที่ 1 - การติดตั้งปลั๊กอิน Globalization
เปิด command prompt และติดตั้งปลั๊กอินโดยพิมพ์รหัสต่อไปนี้
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-globalization
ขั้นตอนที่ 2 - เพิ่มปุ่ม
เราจะเพิ่มปุ่มต่างๆ index.html เพื่อให้สามารถเรียกใช้วิธีการต่างๆที่เราจะสร้างในภายหลัง
<button id = "getLanguage">LANGUAGE</button>
<button id = "getLocaleName">LOCALE NAME</button>
<button id = "getDate">DATE</button>
<button id = "getCurrency">CURRENCY</button>
ขั้นตอนที่ 3 - เพิ่มผู้ฟังเหตุการณ์
ผู้ฟังเหตุการณ์จะถูกเพิ่มเข้าไปข้างใน getDeviceReady ฟังก์ชันใน index.js เพื่อให้แน่ใจว่าแอพและ Cordova ของเราโหลดก่อนที่เราจะเริ่มใช้งาน
document.getElementById("getLanguage").addEventListener("click", getLanguage);
document.getElementById("getLocaleName").addEventListener("click", getLocaleName);
document.getElementById("getDate").addEventListener("click", getDate);
document.getElementById("getCurrency").addEventListener("click", getCurrency);
ขั้นตอนที่ 4A - ฟังก์ชันภาษา
ฟังก์ชันแรกที่เราใช้ส่งคืนแท็กภาษา BCP 47 ของอุปกรณ์ไคลเอนต์ เราจะใช้getPreferredLanguageวิธี. ฟังก์ชันนี้มีสองพารามิเตอร์ onSuccess และonError. เรากำลังเพิ่มฟังก์ชันนี้ในindex.js.
function getLanguage() {
navigator.globalization.getPreferredLanguage(onSuccess, onError);
function onSuccess(language) {
alert('language: ' + language.value + '\n');
}
function onError(){
alert('Error getting language');
}
}
เมื่อเรากด LANGUAGE ปุ่มการแจ้งเตือนจะแสดงบนหน้าจอ
ขั้นตอนที่ 4B - ฟังก์ชัน Locale
ฟังก์ชันนี้ส่งคืนแท็ก BCP 47 สำหรับการตั้งค่าภายในของไคลเอ็นต์ ฟังก์ชั่นนี้คล้ายกับที่เราสร้างไว้ก่อนหน้านี้ ข้อแตกต่างเพียงอย่างเดียวคือเรากำลังใช้getLocaleName วิธีการในครั้งนี้
function getLocaleName() {
navigator.globalization.getLocaleName(onSuccess, onError);
function onSuccess(locale) {
alert('locale: ' + locale.value);
}
function onError(){
alert('Error getting locale');
}
}
เมื่อเราคลิกไฟล์ LOCALE ปุ่มการแจ้งเตือนจะแสดงแท็กโลแคลของเรา
ขั้นตอนที่ 4C - ฟังก์ชันวันที่
ฟังก์ชันนี้ใช้สำหรับการส่งคืนวันที่ตามการตั้งค่าโลแคลและเขตเวลาของลูกค้า date พารามิเตอร์คือวันที่ปัจจุบันและ options พารามิเตอร์เป็นทางเลือก
function getDate() {
var date = new Date();
var options = {
formatLength:'short',
selector:'date and time'
}
navigator.globalization.dateToString(date, onSuccess, onError, options);
function onSuccess(date) {
alert('date: ' + date.value);
}
function onError(){
alert('Error getting dateString');
}
}
ตอนนี้เราสามารถเรียกใช้แอพและกด DATE เพื่อดูวันที่ปัจจุบัน
ฟังก์ชันสุดท้ายที่เราจะแสดงคือการคืนค่าสกุลเงินตามการตั้งค่าอุปกรณ์ของลูกค้าและรหัสสกุลเงิน ISO 4217 คุณจะเห็นได้ว่าแนวคิดเหมือนกัน
function getCurrency() {
var currencyCode = 'EUR';
navigator.globalization.getCurrencyPattern(currencyCode, onSuccess, onError);
function onSuccess(pattern) {
alert('pattern: ' + pattern.pattern + '\n' +
'code: ' + pattern.code + '\n' +
'fraction: ' + pattern.fraction + '\n' +
'rounding: ' + pattern.rounding + '\n' +
'decimal: ' + pattern.decimal + '\n' +
'grouping: ' + pattern.grouping);
}
function onError(){
alert('Error getting pattern');
}
}
CURRENCY ปุ่มจะเรียกการแจ้งเตือนซึ่งจะแสดงรูปแบบสกุลเงินของผู้ใช้
ปลั๊กอินนี้นำเสนอวิธีการอื่น ๆ คุณสามารถดูทั้งหมดได้ในตารางด้านล่าง
วิธี | พารามิเตอร์ | รายละเอียด |
---|---|---|
getPreferredLanguage | onSuccess, onError | ส่งคืนภาษาปัจจุบันของไคลเอ็นต์ |
getLocaleName | onSuccess, onError | ส่งคืนการตั้งค่าโลแคลปัจจุบันของไคลเอ็นต์ |
dateToString | วันที่ onSuccess onError ตัวเลือก | ส่งคืนวันที่ตามสถานที่ตั้งและเขตเวลาของลูกค้า |
stringToDate | dateString, onSuccess, onError ตัวเลือก | แยกวิเคราะห์วันที่ตามการตั้งค่าของลูกค้า |
getCurrencyPattern | currencyCode, onSuccess, onError | ส่งคืนรูปแบบสกุลเงินของลูกค้า |
getDatePattern | onSuccess, onError, ตัวเลือก | ส่งคืนรูปแบบวันที่ของลูกค้า |
getDateNames | onSuccess, onError, ตัวเลือก | ส่งคืนอาร์เรย์ของชื่อเดือนสัปดาห์หรือวันตามการตั้งค่าของลูกค้า |
isDayLightSavingsTime | วันที่, successCallback, errorCallback | ใช้เพื่อตรวจสอบว่าเวลาออมแสงทำงานตามโซนเวลาและปฏิทินของลูกค้าหรือไม่ |
getFirstDayOfWeek | onSuccess, onError | ส่งคืนวันแรกของสัปดาห์ตามการตั้งค่าไคลเอนต์ |
numberToString | number, onSuccess, onError ตัวเลือก | ส่งคืนหมายเลขตามการตั้งค่าของลูกค้า |
stringToNumber | string, onSuccess, onError ตัวเลือก | แยกวิเคราะห์ตัวเลขตามการตั้งค่าของลูกค้า |
getNumberPattern | onSuccess, onError, ตัวเลือก | ส่งคืนรูปแบบตัวเลขตามการตั้งค่าของลูกค้า |
ปลั๊กอินนี้ใช้สำหรับเปิดเว็บเบราว์เซอร์ภายในแอป Cordova
ขั้นตอนที่ 1 - การติดตั้งปลั๊กอิน
เราจำเป็นต้องติดตั้งปลั๊กอินนี้ command prompt ก่อนที่เราจะสามารถใช้งานได้
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-inappbrowser
ขั้นตอนที่ 2 - ปุ่มเพิ่ม
เราจะเพิ่มปุ่มหนึ่งปุ่มที่จะใช้สำหรับเปิด inAppBrowser หน้าต่างใน index.html.
ขั้นตอนที่ 3 - เพิ่มผู้ฟังเหตุการณ์
ตอนนี้มาเพิ่มตัวฟังเหตุการณ์สำหรับปุ่มของเรา onDeviceReady ฟังก์ชันใน index.js.
document.getElementById("openBrowser").addEventListener("click", openBrowser);
ขั้นตอนที่ 4 - สร้างฟังก์ชัน
ในขั้นตอนนี้เรากำลังสร้างฟังก์ชันที่จะเปิดเบราว์เซอร์ภายในแอปของเรา เรากำลังกำหนดให้กับไฟล์ref ตัวแปรที่เราสามารถใช้ในภายหลังเพื่อเพิ่มผู้ฟังเหตุการณ์
function openBrowser() {
var url = 'https://cordova.apache.org';
var target = '_blank';
var options = "location = yes"
var ref = cordova.InAppBrowser.open(url, target, options);
ref.addEventListener('loadstart', loadstartCallback);
ref.addEventListener('loadstop', loadstopCallback);
ref.addEventListener('loaderror', loaderrorCallback);
ref.addEventListener('exit', exitCallback);
function loadstartCallback(event) {
console.log('Loading started: ' + event.url)
}
function loadstopCallback(event) {
console.log('Loading finished: ' + event.url)
}
function loaderrorCallback(error) {
console.log('Loading error: ' + error.message)
}
function exitCallback() {
console.log('Browser is closed...')
}
}
ถ้าเรากด BROWSER เราจะเห็นผลลัพธ์ต่อไปนี้บนหน้าจอ
คอนโซลยังจะรับฟังเหตุการณ์ loadstart เหตุการณ์จะเริ่มทำงานเมื่อ URL เริ่มโหลดและ loadstopจะเริ่มทำงานเมื่อโหลด URL เราสามารถดูได้ในคอนโซล
เมื่อเราปิดเบราว์เซอร์ exit เหตุการณ์จะเริ่มขึ้น
มีตัวเลือกอื่น ๆ ที่เป็นไปได้สำหรับหน้าต่าง InAppBrowser เราจะอธิบายไว้ในตารางด้านล่าง
ส. เลขที่ | ตัวเลือกและรายละเอียด |
---|---|
1 | location ใช้เพื่อเปิดหรือปิดแถบตำแหน่งของเบราว์เซอร์ ค่าคือyes หรือ no. |
2 | hidden ใช้เพื่อซ่อนหรือแสดงใน AppBrowser ค่าคือyes หรือ no. |
3 | clearCache ใช้เพื่อล้างแคชคุกกี้ของเบราว์เซอร์ ค่าคือyes หรือ no. |
4 | clearsessioncache ใช้เพื่อล้างแคชคุกกี้เซสชัน ค่าคือyes หรือ no. |
5 | zoom ใช้เพื่อซ่อนหรือแสดงตัวควบคุมการซูมของเบราว์เซอร์ Android ค่าคือyes หรือ no. |
6 | hardwareback yes เพื่อใช้ปุ่มย้อนกลับของฮาร์ดแวร์เพื่อย้อนกลับไปยังประวัติเบราว์เซอร์ no เพื่อปิดเบราว์เซอร์เมื่อคลิกปุ่มย้อนกลับ |
เราสามารถใช้ ref(อ้างอิง) ตัวแปรสำหรับฟังก์ชันอื่น ๆ เราจะแสดงตัวอย่างสั้น ๆ ให้คุณดู สำหรับการลบผู้ฟังเหตุการณ์เราสามารถใช้ -
ref.removeEventListener(eventname, callback);
สำหรับการปิด InAppBrowser เราสามารถใช้ -
ref.close();
หากเราเปิดหน้าต่างที่ซ่อนอยู่เราสามารถแสดงได้ -
ref.show();
แม้แต่โค้ด JavaScript ก็สามารถแทรกลงใน InAppBrowser ได้ -
var details = "javascript/file/url"
ref.executeScript(details, callback);
แนวคิดเดียวกันนี้สามารถใช้ในการฉีด CSS -
var details = "css/file/url"
ref.inserCSS(details, callback);
ปลั๊กอิน Cordova media ใช้สำหรับบันทึกและเล่นเสียงในแอพ Cordova
ขั้นตอนที่ 1 - การติดตั้ง Media Plugin
สามารถติดตั้งปลั๊กอินสื่อได้โดยเรียกใช้รหัสต่อไปนี้ใน command prompt หน้าต่าง.
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-media
ขั้นตอนที่ 2 - เพิ่มปุ่ม
ในบทช่วยสอนนี้เราจะสร้างเครื่องเล่นเสียงอย่างง่าย มาสร้างปุ่มที่เราต้องการindex.html.
<button id = "playAudio">PLAY</button>
<button id = "pauseAudio">PAUSE</button>
<button id = "stopAudio">STOP</button>
<button id = "volumeUp">VOLUME UP</button>
<button id = "volumeDown">VOLUME DOWN</button>
ขั้นตอนที่ 3 - เพิ่มผู้ฟังเหตุการณ์
ตอนนี้เราต้องเพิ่มตัวฟังเหตุการณ์สำหรับปุ่มของเราภายใน onDeviceReady ฟังก์ชั่นภายใน index.js.
document.getElementById("playAudio").addEventListener("click", playAudio);
document.getElementById("pauseAudio").addEventListener("click", pauseAudio);
document.getElementById("stopAudio").addEventListener("click", stopAudio);
document.getElementById("volumeUp").addEventListener("click", volumeUp);
document.getElementById("volumeDown").addEventListener("click", volumeDown);
ขั้นตอนที่ 4A - เล่นฟังก์ชั่น
ฟังก์ชันแรกที่เราจะเพิ่มคือ playAudio. เรากำลังกำหนดmyMediaนอกฟังก์ชันเนื่องจากเราต้องการใช้ในฟังก์ชันที่จะถูกเพิ่มในภายหลัง (หยุดชั่วคราวหยุดเพิ่มระดับเสียงและระดับเสียงลง) รหัสนี้อยู่ในindex.js ไฟล์.
var myMedia = null;
function playAudio() {
var src = "/android_asset/www/audio/piano.mp3";
if(myMedia === null) {
myMedia = new Media(src, onSuccess, onError);
function onSuccess() {
console.log("playAudio Success");
}
function onError(error) {
console.log("playAudio Error: " + error.code);
}
}
myMedia.play();
}
เราสามารถคลิก PLAY ปุ่มเพื่อเริ่มเพลงเปียโนจากไฟล์ src เส้นทาง.
ขั้นตอนที่ 4B - ฟังก์ชั่นหยุดชั่วคราวและหยุด
ฟังก์ชั่นต่อไปที่เราต้องการคือ pauseAudio และ stopAudio.
function pauseAudio() {
if(myMedia) {
myMedia.pause();
}
}
function stopAudio() {
if(myMedia) {
myMedia.stop();
}
myMedia = null;
}
ตอนนี้เราสามารถหยุดชั่วคราวหรือหยุดเสียงเปียโนได้โดยคลิก PAUSE หรือ STOP ปุ่ม
ขั้นตอนที่ 4C - ฟังก์ชั่นระดับเสียง
ในการตั้งระดับเสียงเราสามารถใช้ setVolumeวิธี. วิธีนี้ใช้พารามิเตอร์ที่มีค่าจาก0 ถึง 1. เราจะตั้งค่าเริ่มต้นเป็น0.5.
var volumeValue = 0.5;
function volumeUp() {
if(myMedia && volumeValue < 1) {
myMedia.setVolume(volumeValue += 0.1);
}
}
function volumeDown() {
if(myMedia && volumeValue > 0) {
myMedia.setVolume(volumeValue -= 0.1);
}
}
เมื่อเรากด VOLUME UP หรือ VOLUME DOWN เราสามารถเปลี่ยนค่าระดับเสียงโดย 0.1.
ตารางต่อไปนี้แสดงวิธีการอื่น ๆ ที่ปลั๊กอินนี้มีให้
ส. เลขที่ | วิธีการและรายละเอียด |
---|---|
1 | getCurrentPosition ส่งคืนตำแหน่งปัจจุบันของเสียง |
2 | getDuration ส่งคืนระยะเวลาของเสียง |
3 | play ใช้สำหรับเริ่มต้นหรือเล่นต่อเสียง |
4 | pause ใช้สำหรับหยุดเสียงชั่วคราว |
5 | release เผยแพร่ทรัพยากรเสียงของระบบปฏิบัติการที่ใช้อยู่ |
6 | seekTo ใช้สำหรับเปลี่ยนตำแหน่งของเสียง |
7 | setVolume ใช้สำหรับตั้งค่าระดับเสียงสำหรับเสียง |
8 | startRecord เริ่มบันทึกไฟล์เสียง |
9 | stopRecord หยุดบันทึกไฟล์เสียง |
10 | stop หยุดเล่นไฟล์เสียง |
ปลั๊กอินนี้ใช้สำหรับเข้าถึงตัวเลือกการจับภาพของอุปกรณ์
ขั้นตอนที่ 1 - การติดตั้ง Media Capture Plugin
ในการติดตั้งปลั๊กอินนี้เราจะเปิดขึ้น command prompt และเรียกใช้รหัสต่อไปนี้ -
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-media-capture
ขั้นตอนที่ 2 - เพิ่มปุ่ม
เนื่องจากเราต้องการแสดงวิธีจับภาพเสียงภาพและวิดีโอเราจะสร้างปุ่มสามปุ่มใน index.html.
<button id = "audioCapture">AUDIO</button>
<button id = "imageCapture">IMAGE</button>
<button id = "videoCapture">VIDEO</button>
ขั้นตอนที่ 3 - เพิ่มผู้ฟังเหตุการณ์
ขั้นตอนต่อไปคือการเพิ่มผู้ฟังเหตุการณ์ภายใน onDeviceReady ใน index.js.
document.getElementById("audioCapture").addEventListener("click", audioCapture);
document.getElementById("imageCapture").addEventListener("click", imageCapture);
document.getElementById("videoCapture").addEventListener("click", videoCapture);
ขั้นตอนที่ 4A - จับฟังก์ชั่นเสียง
ฟังก์ชันโทรกลับแรกใน index.js คือ audioCapture. ในการเริ่มบันทึกเสียงเราจะใช้captureAudioวิธี. เรากำลังใช้สองตัวเลือก -limit จะอนุญาตให้บันทึกคลิปเสียงได้เพียงคลิปเดียวต่อการจับภาพเดียวและ duration คือจำนวนวินาทีของคลิปเสียง
function audioCapture() {
var options = {
limit: 1,
duration: 10
};
navigator.device.capture.captureAudio(onSuccess, onError, options);
function onSuccess(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
console.log(mediaFiles);
}
}
function onError(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
}
}
เมื่อเรากด AUDIO ปุ่มบันทึกเสียงจะเปิดขึ้น
คอนโซลจะแสดงอาร์เรย์ของวัตถุที่ผู้ใช้จับ
ขั้นตอนที่ 4B - ฟังก์ชั่นจับภาพ
ฟังก์ชั่นในการจับภาพจะเหมือนกับภาพสุดท้าย ข้อแตกต่างเพียงอย่างเดียวคือเรากำลังใช้captureImage วิธีการในครั้งนี้
function imageCapture() {
var options = {
limit: 1
};
navigator.device.capture.captureImage(onSuccess, onError, options);
function onSuccess(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
console.log(mediaFiles);
}
}
function onError(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
}
}
ตอนนี้เราสามารถคลิก IMAGE ปุ่มเพื่อเริ่มการทำงานของกล้อง
เมื่อเราถ่ายภาพคอนโซลจะบันทึกอาร์เรย์ด้วยออบเจ็กต์รูปภาพ
ขั้นตอนที่ 4C - ฟังก์ชั่นจับภาพวิดีโอ
มาทำซ้ำแนวคิดเดิมในการจับภาพวิดีโอ เราจะใช้videoCapture วิธีการในครั้งนี้
function videoCapture() {
var options = {
limit: 1,
duration: 10
};
navigator.device.capture.captureVideo(onSuccess, onError, options);
function onSuccess(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
console.log(mediaFiles);
}
}
function onError(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
}
}
ถ้าเรากด VIDEO ปุ่มกล้องจะเปิดขึ้นและเราสามารถบันทึกวิดีโอได้
เมื่อบันทึกวิดีโอแล้วคอนโซลจะส่งคืนอาร์เรย์อีกครั้ง คราวนี้มีวัตถุวิดีโออยู่ภายใน
ปลั๊กอินนี้ให้ข้อมูลเกี่ยวกับเครือข่ายของอุปกรณ์
ขั้นตอนที่ 1 - การติดตั้งปลั๊กอินข้อมูลเครือข่าย
ในการติดตั้งปลั๊กอินนี้เราจะเปิดขึ้น command prompt และเรียกใช้รหัสต่อไปนี้ -
C:\Users\username\Desktop\CordovaProject>cordova plugin
add cordova-plugin-network-information
ขั้นตอนที่ 2 - เพิ่มปุ่ม
มาสร้างปุ่มเดียวใน index.html ที่จะใช้ในการรับข้อมูลเกี่ยวกับเครือข่าย
<button id = "networkInfo">INFO</button>
ขั้นตอนที่ 3 - เพิ่มผู้ฟังเหตุการณ์
เราจะเพิ่มผู้ฟังเหตุการณ์สามคนภายใน onDeviceReady ฟังก์ชันใน index.js. หนึ่งจะฟังการคลิกบนปุ่มที่เราสร้างขึ้นก่อนหน้านี้และอีกสองปุ่มจะรับฟังการเปลี่ยนแปลงสถานะการเชื่อมต่อ
document.getElementById("networkInfo").addEventListener("click", networkInfo);
document.addEventListener("offline", onOffline, false);
document.addEventListener("online", onOnline, false);
ขั้นตอนที่ 4 - การสร้างฟังก์ชัน
networkInfoฟังก์ชันจะส่งคืนข้อมูลเกี่ยวกับการเชื่อมต่อเครือข่ายปัจจุบันเมื่อคลิกปุ่ม เรากำลังโทรtypeวิธี. ฟังก์ชั่นอื่น ๆ คือonOffline และ onOnline. ฟังก์ชั่นเหล่านี้กำลังรับฟังการเปลี่ยนแปลงการเชื่อมต่อและการเปลี่ยนแปลงใด ๆ จะทริกเกอร์ข้อความแจ้งเตือนที่เกี่ยวข้อง
function networkInfo() {
var networkState = navigator.connection.type;
var states = {};
states[Connection.UNKNOWN] = 'Unknown connection';
states[Connection.ETHERNET] = 'Ethernet connection';
states[Connection.WIFI] = 'WiFi connection';
states[Connection.CELL_2G] = 'Cell 2G connection';
states[Connection.CELL_3G] = 'Cell 3G connection';
states[Connection.CELL_4G] = 'Cell 4G connection';
states[Connection.CELL] = 'Cell generic connection';
states[Connection.NONE] = 'No network connection';
alert('Connection type: ' + states[networkState]);
}
function onOffline() {
alert('You are now offline!');
}
function onOnline() {
alert('You are now online!');
}
เมื่อเราเริ่มแอพที่เชื่อมต่อกับเครือข่าย onOnline ฟังก์ชันจะทริกเกอร์การแจ้งเตือน
ถ้าเรากด INFO ปุ่มการแจ้งเตือนจะแสดงสถานะเครือข่ายของเรา
หากเราตัดการเชื่อมต่อจากเครือข่าย onOffline ฟังก์ชันจะถูกเรียกใช้
ปลั๊กอินนี้ใช้เพื่อแสดงหน้าจอเริ่มต้นเมื่อเปิดแอปพลิเคชัน
ขั้นตอนที่ 1 - การติดตั้งปลั๊กอิน Splash Screen
สามารถติดตั้งปลั๊กอินหน้าจอสแปลชได้ command prompt หน้าต่างโดยเรียกใช้รหัสต่อไปนี้
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-splashscreen
ขั้นตอนที่ 2 - เพิ่มหน้าจอ Splash
การเพิ่มหน้าจอเริ่มต้นแตกต่างจากการเพิ่มปลั๊กอิน Cordova อื่น ๆ เราจำเป็นต้องเปิดconfig.xml และเพิ่มข้อมูลโค้ดต่อไปนี้ภายในไฟล์ widget ธาตุ.
ตัวอย่างแรกคือ SplashScreen. มันมีvalue ซึ่งเป็นชื่อของภาพใน platform/android/res/drawable- โฟลเดอร์ Cordova เสนอค่าเริ่มต้นscreen.pngภาพที่เราใช้ในตัวอย่างนี้ แต่คุณอาจต้องการเพิ่มภาพของคุณเอง สิ่งสำคัญคือการเพิ่มภาพสำหรับแนวตั้งและแนวนอนและเพื่อให้ครอบคลุมขนาดหน้าจอที่แตกต่างกัน
<preference name = "SplashScreen" value = "screen" />
ตัวอย่างที่สองที่เราต้องเพิ่มคือ SplashScreenDelay. เรากำลังตั้งค่าvalue ถึง 3000 เพื่อซ่อนหน้าจอเริ่มต้นหลังจากสามวินาที
<preference name = "SplashScreenDelay" value = "3000" />
ค่ากำหนดสุดท้ายเป็นทางเลือก หากตั้งค่าเป็นtrueภาพจะไม่ถูกยืดให้พอดีกับหน้าจอ หากตั้งค่าเป็นfalseมันจะถูกยืดออก
<preference name = "SplashMaintainAspectRatio" value = "true" />
ตอนนี้เมื่อเราเรียกใช้แอปเราจะเห็นหน้าจอเริ่มต้น
ปลั๊กอินนี้ใช้สำหรับเชื่อมต่อกับฟังก์ชันการสั่นของอุปกรณ์
ขั้นตอนที่ 1 - การติดตั้งปลั๊กอินการสั่นสะเทือน
เราสามารถติดตั้งปลั๊กอินนี้ได้ command prompt หน้าต่างโดยเรียกใช้รหัสต่อไปนี้ -
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-vibration
ขั้นตอนที่ 2 - เพิ่มปุ่ม
เมื่อติดตั้งปลั๊กอินแล้วเราสามารถเพิ่มปุ่มได้ index.html ที่จะใช้ในภายหลังเพื่อกระตุ้นการสั่นสะเทือน
<button id = "vibration">VIBRATION</button>
<button id = "vibrationPattern">PATTERN</button>
ขั้นตอนที่ 3 - เพิ่มผู้ฟังเหตุการณ์
ตอนนี้เรากำลังจะเพิ่มผู้ฟังเหตุการณ์ภายใน onDeviceReady ใน index.js.
document.getElementById("vibration").addEventListener("click", vibration);
document.getElementById("vibrationPattern").addEventListener("click", vibrationPattern);
ขั้นตอนที่ 4 - สร้างฟังก์ชัน
ปลั๊กอินนี้ใช้งานง่ายมาก เราจะสร้างสองฟังก์ชัน
function vibration() {
var time = 3000;
navigator.vibrate(time);
}
function vibrationPattern() {
var pattern = [1000, 1000, 1000, 1000];
navigator.vibrate(pattern);
}
ฟังก์ชันแรกใช้เวลาพารามิเตอร์ พารามิเตอร์นี้ใช้สำหรับกำหนดระยะเวลาของการสั่นสะเทือน อุปกรณ์จะสั่นเป็นเวลาสามวินาทีเมื่อเรากดVIBRATION ปุ่ม.
กำลังใช้ฟังก์ชันที่สอง patternพารามิเตอร์. อาร์เรย์นี้จะขอให้อุปกรณ์สั่นเป็นเวลาหนึ่งวินาทีจากนั้นรอหนึ่งวินาทีจากนั้นทำซ้ำอีกครั้ง
ปลั๊กอินนี้ช่วยให้เราใช้นโยบายรายการที่อนุญาตพิเศษสำหรับการนำทางของแอปได้ เมื่อเราสร้างโครงการ Cordova ใหม่ไฟล์whitelistปลั๊กอินได้รับการติดตั้งและใช้งานตามค่าเริ่มต้น คุณสามารถเปิดไฟล์config.xml ไฟล์เพื่อดู allow-intent การตั้งค่าเริ่มต้นโดย Cordova
รายการที่อนุญาตสำหรับการนำทาง
ในตัวอย่างง่ายๆด้านล่างเราอนุญาตให้เชื่อมโยงไปยัง URL ภายนอกบางส่วน รหัสนี้อยู่ในconfig.xml. นำทางไปยังfile:// URL ได้รับอนุญาตโดยค่าเริ่มต้น
<allow-navigation href = "http://example.com/*" />
เครื่องหมายดอกจัน * ใช้เพื่ออนุญาตการนำทางไปยังค่าต่างๆ ในตัวอย่างข้างต้นเราอนุญาตให้นำทางไปยังโดเมนย่อยทั้งหมดของexample.com. สามารถนำไปใช้กับโปรโตคอลหรือคำนำหน้ากับโฮสต์ได้
<allow-navigation href = "*://*.example.com/*" />
รายการที่อนุญาตพิเศษ
นอกจากนี้ยังมีไฟล์ allow-intentองค์ประกอบที่ใช้เพื่อระบุ URL ที่ได้รับอนุญาตให้เปิดระบบ คุณสามารถดูได้ในไฟล์config.xml ที่ Cordova อนุญาตลิงก์ที่จำเป็นส่วนใหญ่ให้เราแล้ว
รายการขออนุญาตเครือข่าย
เมื่อคุณมองเข้าไปข้างใน config.xml มีไฟล์ <access origin="*" />ธาตุ. องค์ประกอบนี้ช่วยให้คำขอเครือข่ายทั้งหมดไปยังแอปของเราผ่าน Cordova hooks หากคุณต้องการอนุญาตเฉพาะคำขอที่เจาะจงคุณสามารถลบออกจาก config.xml และตั้งค่าด้วยตัวเอง
ใช้หลักการเดียวกันกับในตัวอย่างก่อนหน้านี้
<access origin = "http://example.com" />
ซึ่งจะอนุญาตคำขอเครือข่ายทั้งหมดจาก http://example.com.
นโยบายความปลอดภัยของเนื้อหา
คุณสามารถดูนโยบายความปลอดภัยปัจจุบันสำหรับแอปของคุณได้ในไฟล์ head องค์ประกอบใน index.html.
<meta http-equiv = "Content-Security-Policy" content = "default-src
'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src
'self' 'unsafe-inline'; media-src *">
นี่คือการกำหนดค่าเริ่มต้น หากคุณต้องการอนุญาตทุกอย่างจากแหล่งกำเนิดเดียวกันและexample.comจากนั้นคุณสามารถใช้ -
<meta http-equiv = "Content-Security-Policy" content = "default-src 'self' foo.com">
คุณยังอนุญาตทุกอย่างได้ แต่ จำกัด CSS และ JavaScript ไว้ที่ต้นทางเดียวกัน
<meta http-equiv = "Content-Security-Policy" content = "default-src *;
style-src 'self' 'unsafe-inline'; script-src 'self'
'unsafe-inline' 'unsafe-eval'">
เนื่องจากนี่เป็นบทช่วยสอนสำหรับผู้เริ่มต้นเราจึงขอแนะนำตัวเลือก Cordova เริ่มต้น เมื่อคุณคุ้นเคยกับ Cordova แล้วคุณสามารถลองใช้ค่าต่างๆ
Cordova ใช้สำหรับสร้างแอพมือถือแบบไฮบริดดังนั้นคุณต้องพิจารณาสิ่งนี้ก่อนที่จะเลือกใช้สำหรับโครงการของคุณ ด้านล่างนี้คือแนวทางปฏิบัติที่ดีที่สุดสำหรับการพัฒนาแอป Cordova
แอปหน้าเดียว
นี่คือการออกแบบที่แนะนำสำหรับแอป Cordova ทั้งหมด SPA ใช้เราเตอร์ฝั่งไคลเอ็นต์และการนำทางที่โหลดไว้ในหน้าเดียว (โดยปกติคือindex.html). การกำหนดเส้นทางจัดการผ่าน AJAX หากคุณทำตามบทช่วยสอนของเราคุณอาจสังเกตเห็นว่าปลั๊กอิน Cordova เกือบทุกตัวต้องรอจนกว่าอุปกรณ์จะพร้อมก่อนจึงจะสามารถใช้งานได้ การออกแบบสปาจะช่วยเพิ่มความเร็วในการโหลดและประสิทธิภาพโดยรวม
แตะกิจกรรม
เนื่องจาก Cordova ใช้สำหรับโลกเคลื่อนที่จึงใช้งานได้ตามธรรมชาติ touchstart และ touchend เหตุการณ์แทน clickเหตุการณ์ เหตุการณ์การคลิกมีความล่าช้า 300 มิลลิวินาทีดังนั้นการคลิกจึงไม่เกิดขึ้นเอง ในทางกลับกันกิจกรรมการสัมผัสไม่รองรับในทุกแพลตฟอร์ม คุณควรคำนึงถึงสิ่งนี้ก่อนตัดสินใจว่าจะใช้อะไร
ภาพเคลื่อนไหว
คุณควรใช้ฮาร์ดแวร์เร่งเสมอ CSS Transitions แทนที่จะเป็นภาพเคลื่อนไหว JavaScript เนื่องจากจะทำงานได้ดีกว่าบนอุปกรณ์เคลื่อนที่
การจัดเก็บ
ใช้แคชการจัดเก็บข้อมูลให้มากที่สุด การเชื่อมต่อเครือข่ายมือถือมักจะไม่ดีดังนั้นคุณควรลดการโทรในเครือข่ายภายในแอปของคุณ คุณควรจัดการสถานะออฟไลน์ของแอพด้วยเนื่องจากจะมีบางครั้งที่อุปกรณ์ของผู้ใช้ออฟไลน์
การเลื่อน
เวลาส่วนใหญ่ที่ช้าแรกในแอปของคุณจะเป็นการเลื่อนรายการ มีสองวิธีในการปรับปรุงประสิทธิภาพการเลื่อนของแอป คำแนะนำของเราคือใช้การเลื่อนแบบเนทีฟ เมื่อมีรายการจำนวนมากในรายการคุณควรโหลดบางส่วน ใช้รถตักเมื่อจำเป็น
รูปภาพ
รูปภาพยังทำให้แอปบนอุปกรณ์เคลื่อนที่ช้าลง คุณควรใช้ CSS image sprite ทุกครั้งที่ทำได้ พยายามจัดวางภาพให้พอดีแทนการปรับขนาด
สไตล์ CSS
คุณควรหลีกเลี่ยงเงาและการไล่ระดับสีเนื่องจากจะทำให้เวลาในการแสดงผลของหน้าช้าลง
การทำให้เข้าใจง่าย
DOM ของเบราว์เซอร์ทำงานช้าดังนั้นคุณควรพยายามลดการจัดการ DOM และจำนวนองค์ประกอบ DOM ให้น้อยที่สุด
การทดสอบ
ตรวจสอบให้แน่ใจว่าคุณได้ทดสอบแอปบนอุปกรณ์และเวอร์ชันระบบปฏิบัติการให้มากที่สุด หากแอปทำงานได้อย่างไม่มีที่ติบนอุปกรณ์เครื่องหนึ่งก็ไม่จำเป็นหมายความว่าแอปจะทำงานบนอุปกรณ์หรือแพลตฟอร์มอื่น ๆ