שולח התראות דחיפת אנדרואיד באמצעות Firebase Cloud Messaging

מְחַבֵּר: Louise Ward
תאריך הבריאה: 4 פברואר 2021
תאריך עדכון: 1 יולי 2024
Anonim
שולח התראות דחיפת אנדרואיד באמצעות Firebase Cloud Messaging - אפליקציות
שולח התראות דחיפת אנדרואיד באמצעות Firebase Cloud Messaging - אפליקציות

תוֹכֶן


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

מכיוון ש- FCM הוא חלק מ- Firebase, הוא גם משחק יפה עם שירותי Firebase אחרים. לאחר שתשתלט על יסודות FCM, ייתכן שתרצה להשתמש בבדיקת A / B כדי לזהות אילו התראות הן היעילות ביותר, או להשתמש בחיזוי Firebase כדי ליישם למידה חזקה של מכונה על כל נתוני הניתוח שנוצרו ממסעות הפרסום השונים שלך ב- FCM.

FCM תומך בשני סוגים של s:

  • התראות. יישום הלקוח יתנהג אחרת תלוי אם הוא ברקע או בקדמת הבמה כאשר הוא מקבל את ה- FCM. אם האפליקציה שלך ברקע, ה- SDK של Firebase יעבד אוטומטית את התוכנה ויציג אותה כהודעה במגש המערכת של המכשיר. מכיוון שמערכת אנדרואיד בונה עבורך את ההתראה, זו אחת הדרכים הקלות ביותר להעביר התראות דחיפה למשתמשים שלך. אם האפליקציה שלך מקבלת FCM בזמן שהיא נמצאת בקדמת הבמה, אז המערכת לא התייחס להודעה זו באופן אוטומטי, והשאיר לך לעבד את ההתקשרות חזרה להתקבל האפליקציה שלך (). אנו נבדוק את OnReceived () בהמשך הדרכה זו, אך לעת עתה רק שימו לב שאם האפליקציה שלכם תקבל זמן מה שהיא נמצאת בקדמת הבמה, כברירת מחדל היא לא תוצג למשתמש.
  • נתונים. שלא כמו הודעות הודעה, אתה יכול להשתמש בנתונים כדי לשלוח אלמנטים של נתונים מותאמים אישית ליישום הלקוח. עם זאת, FCM מציב מגבלה של 4KB על נתונים אלה, כך שאם העומס שלך עולה על 4KB, תצטרך להביא את הנתונים הנוספים באמצעות WorkManager או API של JobScheduler.

במדריך זה, נתמקד בהודעות.


מה לגבי הודעות בענן של גוגל?

אם אתה משתמש בשרת ה- Google Cloud Messaging (GCM) וממשקי API של לקוח, יש כמה חדשות רעות: שירות זה כבר הוצא מ- Google ו- Google מתכננת לכבות את שירותי ה- GCM "רוב" באפריל 2019. אם אתה עדיין באמצעות GCM, עליך להתחיל להעביר את הפרויקטים שלך ל- FCM כעת, ואתה חייב להשלים את ההעברה שלך עד אפריל 2019.

הוספת Firebase לפרויקט אנדרואיד שלך

בואו נראה כמה קל להוסיף תמיכה FCM בסיסית לאפליקציה שלך ואז השתמש בה כדי לשלוח התראות דחיפה למשתמשים שלך.

מכיוון ש- FCM הוא שירות Firebase, תצטרך להוסיף Firebase לאפליקציה שלך:

  • עבור אל קונסולת האש.
  • בחר באפשרות "הוסף פרויקט" ותן שם לפרויקט שלך.
  • קרא את התנאים וההגבלות. אם אתה שמח להמשיך, בחר "אני מקבל ..." ואחריו "צור פרויקט."
  • בחר "הוסף בסיס אש לאפליקציית Android שלך."
  • הזן את שם החבילה של הפרויקט שלך ולחץ על "רישום אפליקציה."
  • בחר "הורד google-services.json."
  • באנדרואיד סטודיו, גרור ושחרר את קובץ google-services.json לספריית האפליקציה של הפרויקט.
  • פתח את קובץ build.gradle ברמת הפרויקט והוסף את הדברים הבאים:

classpath com.google.gms: google-services: 4.0.1

  • פתח את קובץ build.gradle ברמת האפליקציה שלך והוסף את התוסף לשירותי Google, בתוספת התלות ל- Firebase Core ו- FCM:

// הוסף את התוסף לשירותי גוגל // החל תוסף: com.google.gms.google-services ... ... ... תלות {קובץ יישוםTree (dir: libs, כולל:) // הוסף את Firebase Core // יישום com.google.firebase: core-firebase: 16.0.1 // הוסף FCM // יישום com.google.firebase: firebase-messaging: 17.3.4

  • כשתתבקש, סנכרן את השינויים שלך.
  • בשלב הבא עליכם ליידע את קונסולת האש Firebase כי הוספתם בהצלחה את Firebase לפרויקט שלכם. התקן את האפליקציה שלך בסמארטפון או טאבלט אנדרואיד פיזי, או מכשיר אנדרואיד אנדרואיד (AVD).
  • בחזרה במסוף האש, בחר "הפעל אפליקציה לאימות ההתקנה."
  • לאחר ש- Firebase יגלה את האפליקציה שלך, תראה "מזל טוב". בחר "המשך למסוף."

שולח את הודעת הדחיפה הראשונה שלך באמצעות Firebase

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


אתה יוצר התראות FCM באמצעות Composer Composer, הזמין דרך קונסולת Firebase:

  • וודא שהאפליקציה שלך מותקנת ופועלת ברקע וכי למכשיר שלך יש חיבור אינטרנט פעיל.
  • במסוף Firebase, בחר "Cloud Messaging" מהתפריט הימני.

  • בחר "שלח את הראשון שלך."
  • תן לכותרת שלך טקסט טקסט כלשהו ולחץ על "הבא".

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

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

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

לרוב, התראות FCM יימסרו באופן מיידי, אך לעיתים עשויות להימשך מספר דקות עד שתגיע, אז אל תיבהל אם ההודעה שלך מתעכבת.

קביעת מספר יעדים: אירועי המרת התראות

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

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

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

האם ההודעה שלך הייתה הצלחה?

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

גם אם לא הגדרת יעדים המרה מפורשים, אתה עדיין יכול לאמוד אם המשתמשים פועלים על פי ההודעות שלך, על ידי השוואה בין מספר המסירים שנמסרו למספר ה- S שנפתח.

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

מה אם האפליקציה שלי נמצאת בקדמת הבמה?

התראות FCM מתנהגות בצורה שונה בהתאם למצב יישום הלקוח.

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

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

צור מחלקת Java חדשה בשם "MyFirebaseMessagingService" ואז הוסף את הדברים הבאים:

המחלקה הציבורית MyFirebaseMessagingService מרחיבה את FirebaseMessagingService {@ Override void public onReceived (Remote) {super.onReceived (remote);

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

NotificationCompat.BuildervarsBuilder = חדש NotificationCompat.Builder (זה, "channel_id") .setContentTitle (remote.getNotification (). GetTitle ()) .setContentText (remote.getNotification (). GetBody ()) .setPriority (NotificationCompat.PRIORITY_FA). setStyle (NotificationCompat.BigTextStyle ()) .setSound (RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION)) .setSmallIcon (R.mipmap.ic_launcher) .setAutoCancel (נכון); NotificationManagervarsManager = (NotificationManager) getSystemService (Context.NOTIFICATION_SERVICE); notificationmanager.notify (0, notificationbuilder.build ()); }}

לאחר שיצרת את השירות שלך, אל תשכח להוסיף אותו למניפסט שלך:

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

התראות מעניינות יותר: מיקוד למשתמשים שלך

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

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

  • גרסה. זה מאפשר לך למקד, או לכלול מכשירים שמריצים גרסאות ספציפיות ליישום שלך. לדוגמה, תוכל לשלוח התראות לאנשים שמפעילים את הגרסה החינמית, ולעודד אותם לשדרג לגרסת הפרימיום של האפליקציה שלך.
  • שפה. אתה יכול להשתמש בהגדרה זו כדי למקד או להחריג את השפות והיישובים השונים שבהם היישום שלך תומך, כגון יצירת התראות המותאמות לאזורי זמן או שפות שונות.
  • קהל / ים משתמשים. זה מאפשר לך למקד או לשלול חלקים שונים מהקהל שלך. לדוגמה, אתה יכול להשתמש בהגדרה זו כדי לפתות אנשים שיש להם היסטוריה של ביצוע רכישות בתוך האפליקציה, על ידי הצעת הנחה או הפניית תשומת לבם לכל המוצרים החדשים והמדהימים שבאפליקציה שפרסמת זה עתה.
  • נכס משתמש. אם התקנת את Firebase Analytics, תהיה לך גישה למגוון מידע אודות הקהל שלך, באמצעות נכסי משתמש. אתה יכול להשתמש במאפיינים אלה בשילוב עם FCM, כדי לשלוח התראות ממוקדות לקטעים מאוד ספציפיים בבסיס המשתמש שלך, כמו אנשים בטווח הגילאים 25-34 המעוניינים בספורט.
  • חיזוי. אם תגדיר חיזוי בסיס Firebase, תוכל למקד למשתמשים על סמך הסבירות שהם ינהגו בהתנהגות מסוימת במהלך 7 הימים הקרובים. לדוגמה, אם תחזיות מתריעות שמישהו עשוי להתנתק ממשחק הנייד שלך, אתה יכול להשתמש ב- FCM כדי להזמין אותו לקחת חלק במסע חדש או לשלוח לו קצת מטבע במשחק.
  • מעורבות אפליקציה אחרונה. אם משתמש לא השיק את האפליקציה שלך זמן מה, אתה יכול להשתמש בהגדרה זו כדי לשלוח להם כמה התראות, רק כדי להזכיר לו את כל התוכן הנהדר שיש לאפליקציה שלך להציע.
  • קודם פתוח. זה מאפשר לך לשלוח התראות בהתבסס על הפעם הראשונה בה המשתמש פתח את האפליקציה שלך, לדוגמה אתה עשוי לעזור למשתמשים חדשים להגיע למהירות על ידי שליחת התראות המכילות עצות וייעוץ מועילים.

מיקוד למכשיר יחיד עם אסימוני רישום

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

כאשר המשתמש מפעיל את האפליקציה שלך בפעם הראשונה, FCM SDK מייצר אסימון רישום עבור מופע אפליקציות לקוח זה. אתה יכול להשתמש ב- FirebaseInstanceId.getInstance (). GetInstanceId () כדי ללכוד אסימון רישום זה ואז לשלוח הודעה לאסימון ספציפי זה.

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

הנה MainActivity השלימה שלי:

יבוא android.support.v7.app.AppCompatActivity; יבוא android.os.Bundle; יבוא android.support.annotation.NonNull; יבוא android.util.Log; ייבא com.google.android.gms.tasks.OnCompleteListener; יבוא com.google.android.gms.tasks.Task; יבוא com.google.firebase.iid.FirebaseInstanceId; יבוא com.google.firebase.iid.InstanceIdResult; המעמד הציבורי בכיתה MainActivity מרחיב את AppCompatActivity {סטטי פרטי סטרינג מחרוזת TAG = "MainActivity"; @Orride חלל מוגן onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (חדש OnCompleteListener() {@ הרחק את החלל הציבורי על השלמתו (@ משימה לא מלאה המשימה) {if (! task.is הצליח ()) {// To // // return; } // קבל את אסימון מזהה המופע // String token = task.getResult (). GetToken (); מחרוזת msg = getString (R.string.fcm_token, אסימון); Log.d (TAG, msg); }}); }}

פתח את קובץ ה- strings.xml וצור את משאב המיתרים "fcm_token" שאליו אנו מפנים ב MainActivity:

אסימון FCM:% s

כעת תוכל לאחזר את האסימון הייחודי של המכשיר שלך:

  • התקן את הפרויקט שלך במכשיר Android המחובר, או AVD.
  • פתח את Logcat של Android Studio, על ידי בחירה בכרטיסייה "Logcat" (היכן שהסמן ממוקם בתמונת המסך הבאה).

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

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

לאחר שתשיג את האסימון, תוכל להשתמש בו כדי לשלוח הודעת דחיפה למכשיר ספציפי זה:

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

  • העתק / הדבק את האסימון שלך בשדה "הוסף מופע ..." ואז לחץ על הסמל הכחול הקטן "+" שמופיע.
  • בחר בתיבת הסימון המלווה של האסימון.

  • לחץ על "מבחן."

הודעה זו תופיע כעת במכשיר הלקוח הממוקד בלבד.

מסיימים

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

האם אתה מתכוון להשתמש ב- FCM בפרויקטים אנדרואיד משלך? ספר לנו בתגובות למטה!

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

Netflix הוא לא שירות הזרמת הווידאו הזול ביותר שבחוץ, ועולה עד 16 דולר לחודש. כדי לחסוך כסף, אתה יכול למחוק את המנוי שלך ל- Netflix ולצפות במקום זאת בסרטים בחינם ב- YouTube. יש לא מעט כאלה זמינים, אם כ...

מאמרים בשבילך