PracticU

Device Events

בלי כתוביותעם כתוביות
PracticU › קורס PhoneGap - פיתוח אפליקציות לאנדרואיד ואייפון › Device Events
מילון מושגים:
אירוע - התרחשות שהמערכת מזהה ויכולה להגיב לה, כמו לחיצת עכבר, הקשה או סיום פעולה.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
כפתור - רכיב בממשק המשתמש שהמשתמש לוחץ עליו כדי להפעיל פעולה, כמו שליחת טופס או מעבר לדף אחר.
אמולטור - תוכנה שמחקה מכשיר או סביבה אחרת, למשל כדי להריץ ולבדוק אפליקציית מובייל על המחשב.

Device Events
השיעור מסביר אירועים של המכשיר ב-PhoneGap: איך נרשמים לאירוע בעזרת addEventListener, ומתי כל אחד מהאירועים מתרחש.
רישום לאירועים
1. Device Ready: האירוע הראשון והחשוב ביותר. הוא מתרחש כשהמכשיר מוכן לקבל פקודות מ-PhoneGap, ולכן כל קוד שנוגע לטלפון נכתב בתוך הפונקציה שמופעלת באירוע הזה, ולא בזמן טעינת הדף.
2. פונקציה אינליין: במקום פונקציה נפרדת אפשר לכתוב את הפונקציה בתוך הקריאה ל-addEventListener, בלי לתת לה שם.
אירועי המכשיר
1. Pause ו-Resume: Pause מתרחש כשהאפליקציה עוברת לרקע, כלומר המשתמש עובר לאפליקציה אחרת. Resume מתרחש כשהיא חוזרת להיות פעילה.
2. Online ו-Offline: מתרחשים כשהחיבור לאינטרנט מופעל או נופל, למשל במנהרה או בטיסה.
3. Back Button: מתרחש כשהמשתמש לוחץ על כפתור החזרה.
4. Battery Status, Battery Low ו-Battery Critical: מתרחשים בכל שינוי במצב הסוללה, כשהיא נמוכה, וכשהיא קריטית.
5. Menu Button ו-Search Button: כפתורי התפריט והחיפוש, שקיימים בעיקר באנדרואיד.
6. Start Call Button ו-End Call Button, Volume Down Button ו-Volume Up Button: כפתורי השיחה והעוצמה.
הערות
1. תמיכה משתנה: לא כל האירועים נתמכים בכל הטלפונים, ולכן כדאי לבדוק את התמיכה בתיעוד של PhoneGap.
2. רק מה שצריך: נרשמים רק לאירועים שהאפליקציה צריכה להגיב אליהם.
3. האמולטור מוגבל: חלק מהאירועים, כמו מצב הסוללה, לא נבדקים כראוי באמולטור, ולכן צריך לבדוק אותם על טלפון אמיתי.
כעת אפשר להגיב לאירועים של הטלפון, ולדעת מתי כל אחד מהם מתרחש.
השיעור הבא בקורס: Console Log

פרקי ההרצאה: Device Events

  1. 00:00

    עולם האירועים ב-PhoneGap

  2. 01:02

    הרשמה לאירוע deviceready

  3. 02:19

    הפונקציה onDeviceReady

  4. 03:32

    אירועי pause ו-resume

  5. 05:41

    אירועי online ו-offline

  6. 06:41

    אירועי סוללה ולחצנים

  7. 10:24

    הבדלים בין טלפונים שונים

  8. 11:57

    מגבלות האמולטור

תמלול ההרצאה: Device Events

הטקסט המלא של הדקות הראשונות בהרצאה «Device Events» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:01

    אחרי שראינו איך נראה פרויקט של פונגאפ ואיזה קבצים משתתפים בפרויקט של פונגאפ בואו ניכנס ונראה איך אנחנו משלבים קוד בפרויקט של פונגאפ וכאן אנחנו צריכים להכיר את עולם האירועים אז הנושא הזה זה אילו אירועים קיימים בטלפון נייד ואיך אנחנו יכולים

  2. 00:22

    להירשם לאירועים האלה ולבצע קודים שונים כתלות באירועים האלה דבר ראשון הכנתי פה פרויקט חדש יש לי כמובן את כל הקבצים שאני צריך יש לי תגיעות המטה, לינק ל-JQuery מובייל, יש לי לינק ל-JQuery ולינק ל-CSS שלו, יש לי פה את הלינק לקורדובה ויש לי פה איזשהו לינק לסקריפט שפה אנחנו יכולים לכתוב קוד משלנו ב-JavaScript.

  3. 00:51

    כמובן יש פה את המבנה של הדף הרגיל של JQuery מובייל. אז דבר ראשון, מה שאנחנו רוצים לבצע זה פעילות שמתרחשת כאשר האפליקציה נטענת.

  4. 01:03

    הבריאות הזאת היא document.addEventListener זאת פונקציה של JavaScript שפשוט רושמת לנו איזשהו אירוע שבו אנחנו יכולים לכתוב קוד אז בואו נפתח סוגריים ואנחנו רוצים להירשם לאירוע מיוחד שקיים ב jQuery Mobile והוא נקרא device ready למעשה device ready לא שייך ל jQuery Mobile הוא שייך לפונגאפ למנוע של פונגאפ שזה הקורדובה

  5. 01:41

    אז האירוע הזה בעצם אומר לנו תביאו לי פונקציה ואני פשוט אקרא לה כאשר המכשיר מוכן. זאת אומרת האפליקציה עלתה וכל מה שצריך נטען ואנחנו מסוגלים לתת הוראות למכשיר הנייד שלנו.

  6. 01:59

    אז בואו נבנה פה איזושהי פונקציה שנקראת onDeviceReady. נעתיק את השם של הפונקציה ונכתוב אותה פה function onDeviceReady בצורה כזאת. אם אנחנו כאן מבצעים איזשהו אלרט ומציינים device is ready בואו נריץ ונראה מתי בדיוק האלרט מתבצע ctrl f5 נריץ את האמולטור ונראה שברגע שהאפליקציה עלתה אנחנו כבר רואים את האלרט חשוב שכל דבר

  7. 02:45

    שאנחנו רוצים לבצע כאשר האפליקציה נטענת לא כאשר יוזר לוחץ על לחצן או משהו כזה אלא כאשר האפליקציה נטענת יתבצע בתוך פונקציה שמופעלת באירוע device ready ולא מתבצע לדוגמה פה.

  8. 03:04

    גם כאן יכלתי לרשום איזשהו alert וה-alert הזה היה מתבצע כאשר האפליקציה הייתה נטענת אבל לא בטוח שה-device היה ready בשביל לתת לנו שירות ולכן הרבה דברים אנחנו הולכים לכתוב כאן בפונקציה המיוחדת הזאת.

  9. 03:22

    עכשיו ישנם המון אירועים שאנחנו יכולים להירשם אליהם ששייכים לטלפון הנייד. אז בואו נירשם לכל אירוע ונראה בדיוק מתי הוא מתרחש.

  10. 03:36

    כל אירוע כזה אנחנו נרשמים בצורה הסטנדרטית. דוקיומנט Add Event Listener. בואו נירשם לאירוע הראשון. פאוז. עכשיו כאן אנחנו רואים שאנחנו צריכים עוד פעם לתת פונקציה ואנחנו יכולים להשתמש בטריק ידוע של ג'אווה סקריפט שהוא מאוד מאוד נפוץ בפונגאפ

  11. 03:57

    וזה בעצם פונקציית אינליין. פונקציית אינליין אומרת לנו תנו לי פה את הפונקציה אל תיתנו לה שם אם היא מקבלת ערכים ממי שקורא לה בבקשה תנו ערכים לפונקציה נניח a,b,c אם היא מקבלת פרמטרים אם לא פשוט שימו סוגריים ריקים שימו כאן סוגריים מסולסלים ריקים נהוג שבתוך סוגריים מסולסלים אנחנו יורדים שורה ונכנסים פנימה אבל כאן כתובה

  12. 04:25

    הפונקציה הזאת זאת אומרת כאן אנחנו כבר יכולים לכתוב את הקוד במקום לכתוב את הפונקציה הזאתי חיצונית ואז לתת את השם שלה כמו שעשינו כאן. לא לשכוח שאנחנו נמצאים בפקודה ולכן אנחנו חייבים נקודה פסיקה. בואו נרשום פה איזשהו alert שאנחנו נמצאים באירוע שנקרא pause ועכשיו אנחנו צריכים להבין מתי pause מתרחש.

  13. 04:47

    pause מתרחש כאשר האפליקציה שלנו עוברת להיות אפליקציית background, כלומר היא עדיין קיימת אבל יש אפליקציה אחרת שכרגע היוזר משתמש איתה על פני האפליקציה שלנו.

  14. 05:01

    מה שאני רוצה לעשות זה פשוט להירשם לעוד הרבה אירועים אחרים להעלות אלרטים בכל אירוע וכך אנחנו הולכים לראות אילו אירועים קיימים לנו מבחינת הטלפון הנייד שאנחנו יכולים פשוט לרשום בהם מידע.

  15. 05:17

    אירוע נוסף נקרא, בואו נרשום אותו פה, ריזיום. האירוע הזה מתבצע כאשר האפליקציה שלנו הופכת להיות שוב פעם פעילה. בואו נעתיק שוב פעם את זה.

  16. 05:37

    האירוע הבא שאנחנו יכולים להירשם אליו נקרא און-ליין. האירוע הזה מתרחש כאשר האפליקציה שלנו או שהמכשיר טלפון יותר נכון הופך להיות אונליין מבחינת חיבור האינטרנט.

  17. 05:53

    יש לנו פה אירוע נוסף שאנחנו יכולים להירשם אליו שנקרא אופליין. יוזר עולה על מטוס, נכנס למנהרה, מאיזושהי סיבה אחרת האינטרנט שלו הופך להיות לא פעיל, יש לנו אפשרות להשתמש באירוע אופליין.

  18. 06:17

    בואו נירשם לאירוע נוסף. אירוע נוסף Backbatter. בכל אירוע אני מעלה אלרט, אחר כך נריץ את זה בבת אחת ונראה מתי האלרטים השונים עולים.

  19. 06:34

    האירוע הזה מתרחש כאשר היוזר לחץ על לחצן ה-Back, Back Button, לחזור אחורה. כמובן האפליקציה שלנו צריכה להיות פעילה. בואו נירשם לאירוע נוסף, אירוע שנקרא BatteryStatus.

  20. 06:58

    שימו לב, עדיף שזה יהיה K-Sensitive, כמובן לא לטעות בשום אותקן, לא לבצע טעויות תקלדה. האירוע BatteryStatus מתבצע כל פעם שיש שינוי בסטטוס של הסוללה של המכשיר הנייד שלנו, של היוזר כמובן.

  21. 07:20

    אירוע נוסף שקיים לנו, בואו נירשם אליו פה, שימו לב שאני נרשם לכל האירועים האלה בתוך device ready, כי רק אז אני יכול בעצם לבצע פעילויות שקשורות למובייל.

  22. 07:35

    האירוע הבא נקרא Battery Low. אתם יכולים לנחש מתי האירוע הזה מתבצע, נכון? כאשר הסוללה מגיעה למצב שנקרא Low. מצב שנקרא low זה לא המצב הכי קריטי שיכול להיות מבחינת הסוללה.

  23. 07:57

    יש לנו אירוע נוסף שנקרא battery critical. האירוע הזה מתרחש כאשר הסוללה הופכת להיות די קריטית מבחינת level. אירוע נוסף, נדליק אותו פה, נקרא menu button.

  24. 08:30

    האירוע הזה מתרחש כאשר היוזר לוחץ על לחצן של מניו. האירוע הבא נקרא search button. האירוע הזה מתרחש כאשר היוזר לוחץ על לחצן מיוחד של search שקיים במערכות הפעלה של אנדרואיד, טלפונים של אנדרואיד.

  25. 09:05

    בואו נעבור לאירוע הבא. האירוע הבא נקרא Start Call Button. נעלה אלרט כזה. האירוע הזה מתרחש כאשר המשתמש לוחץ על לחצן Start Call.

  26. 09:30

    בואו נבדוק עוד אירוע. End Call Button. האירוע הזה מתרחש כאשר היוזר לוחץ על לחצן סיום שיחה. בואו נירשם לשני אירועים נוספים.

  27. 09:51

    סוליום דאון בטן והחבר שלו יהיה סוליום בטן פה סיימנו בעצם להירשם למגוון אירועים שהטלפון הנייד מאפשר לנו להירשם אליהם כמה הערות דבר ראשון כמו שראיתם לא כל האירועים מתרחשים בכל הטלפונים הסלולריים לדוגמה ראינו שהאירוע search button שייך רק לאנדרואיד כאן אנחנו רואים בעצם שפיתוח בפונגאפ מכיל איזשהו חיסרון

  28. 10:44

    קטן שיכול להיות שדברים מסוימים יעבדו בטלפון א' אבל לא יעבדו בטלפון ב' כי טלפון ב' לא תומך בהם. אז פה לפעמים אנחנו צריכים אולי לבדוק אם אנחנו באמת רוצים את האירוע הזה או רוצים את הפעילות הזאת, איזה טלפון אנחנו נמצאים, איך לבדוק איזה טלפון אנחנו נמצאים, אנחנו נראה בהמשך.

  29. 11:03

    אבל שימו לב שלא כל הדברים מתבצעים בכל הטלפונים. זאת נקודה חשובה שצריך לשים לב אליה במהלך הפיתוח, ובאמת הרבה פעמים קורה שאנחנו צריכים לבדוק את האפליקציה שלנו במגוון טלפונים ולראות אם באמת מה שעשינו תומך בזה.

  30. 11:21

    כמובן שיש את הדוקומנטציה של מי תומך במה באתר של פונגאפ.קום. הערה נוספת היא שאני כרגע נרשמתי להמון אירועים אבל זה לא אומר שבמציאות אנחנו רוצים להירשם לכל האירועים האלה.

  31. 11:36

    אם אני רוצה לבצע איזה פעולה מסוימת כשהיוזר מבצע ריזיום אז כמובן אני יירשם לריזיום אם אני לא רוצה לבצע פעולה כשהאיוזר עושה לי ריזיום לאפליקציה ואני לא יירשם אליה.

  32. 11:47

    בדרך כלל אני לא יירשם כל כך הרבה לאירועי מערכת בלי באמת צורך לתכנת ביניהם קודם. כרגע רק רצינו לראות שהאירועים האלה עובדים, חלקם עובדים ומתי הם עובדים. הערה שלישית שחשוב לציין זה שיש מקרים שאנחנו לא יכולים לבדוק באמת דברים באמולטור.

  33. 12:09

    לדוגמה, אולי האמולטור לא מאפשר לנו לבדוק האם הבטריה נגמרת, כי מבחינת האמולטור תמיד יש לו סוללה.

  34. 12:17

    אז פה אנחנו צריכים לבדוק באמת אם אירוע כזה מתרחש ומתי הוא מתרחש בטלפון אמיתי. זאת אומרת, אנחנו צריכים לבנות את האפליקציה, לבנות ממנה קובץ התקנה, להתקין אותו, שנראה בהמשך איך עושים את זה, ואז כמובן לבדוק את זה על טלפון אמיתי.

  35. 12:33

    אז יש דברים שהאמולטור, בגלל שהוא רק אמולטור ולא מכשיר אמיתי, מאפשר לנו באמת לבדוק. בואו נריץ את האפליקציה ונראה אילו אירועים מתרחשים.

  36. 12:44

    דבר ראשון אנחנו רואים את ה-Device is Ready שראינו אותו גם מקודם. בואו נלחץ אוקיי ובואו נעבור עם לחצן Back ונראה שאירוע Back Batter נתבצע. זאת אומרת היוזר לחץ על לחצן Back ופתאום כמובן אנחנו יודעים את זה.

  37. 13:03

    בואו נחזור נלך נניח לסטארט

לקורס המלא: קורס PhoneGap אונליין

ההרצאה הקודמת: קובץ Manifest

ההרצאה הבאה: Console Log

הרצאות קשורות מקורסים אחרים

  • Device Inclination
  • אירועים - Events - חלק 1
  • אירועים EVENTS ב-NodeJS
  • אירועים בריאקט - Events

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA
  • קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode
  • קורס פלאטר - Flutter - שפת DART של גוגל למובייל - פיתוח אפליקציות לאנדרואיד ואייפון