Gửi thông báo đẩy Android với Firebase Cloud Messaging

Tác Giả: Louise Ward
Ngày Sáng TạO: 4 Tháng 2 2021
CậP NhậT Ngày Tháng: 1 Tháng BảY 2024
Anonim
Gửi thông báo đẩy Android với Firebase Cloud Messaging - ỨNg DụNg
Gửi thông báo đẩy Android với Firebase Cloud Messaging - ỨNg DụNg

NộI Dung


Mặc dù nó vượt quá phạm vi của hướng dẫn này, bạn cũng có thể sử dụng FCM cho các thông báo ngược dòng, trong đó FCM nhận được từ ứng dụng khách hoặc để thông báo cho ứng dụng của bạn khi có dữ liệu mới có sẵn để tải xuống. Bằng cách này, bạn có thể đảm bảo liên lạc giữa máy chủ ứng dụng và ứng dụng khách của mình chỉ xảy ra khi cần thiết, hiệu quả hơn nhiều so với ứng dụng khách liên lạc với máy chủ theo định kỳ, nếu không có khả năng có thể có một số dữ liệu mới.

Vì FCM là một phần của Firebase, nó cũng chơi độc đáo với các dịch vụ Firebase khác. Khi bạn đã thành thạo các yếu tố cần thiết của FCM, bạn có thể muốn sử dụng Thử nghiệm A / B để xác định thông báo nào là hiệu quả nhất hoặc sử dụng Dự đoán Firebase để áp dụng học máy mạnh mẽ cho tất cả dữ liệu phân tích được tạo từ các chiến dịch FCM khác nhau của bạn.


FCM hỗ trợ hai loại s:

  • Thông báo s. Ứng dụng khách sẽ hoạt động khác nhau tùy thuộc vào việc nó ở chế độ nền hay nền trước khi nhận được FCM. Nếu ứng dụng của bạn ở chế độ nền, thì SDK Firebase sẽ tự động xử lý và hiển thị dưới dạng thông báo trong khay hệ thống của thiết bị. Vì hệ thống Android xây dựng thông báo cho bạn, đây là một trong những cách dễ nhất để gửi thông báo đẩy cho người dùng của bạn. Nếu ứng dụng của bạn nhận được một FCM trong khi ứng dụng này ở phía trước, thì hệ thống đã thắng tự động xử lý thông báo này, để bạn xử lý cuộc gọi lại trong ứng dụng của bạn. Chúng tôi sẽ khám phá onReceured () sau trong hướng dẫn này, nhưng bây giờ chỉ cần lưu ý rằng nếu ứng dụng của bạn nhận được một lúc thì nó ở phía trước, thì theo mặc định, won won này sẽ được hiển thị cho người dùng.
  • Dữ liệu s. Không giống như thông báo, bạn có thể sử dụng dữ liệu để gửi các yếu tố dữ liệu tùy chỉnh đến ứng dụng khách. Tuy nhiên, FCM không đặt giới hạn 4KB cho các dữ liệu này, vì vậy nếu tải trọng của bạn vượt quá 4KB thì bạn sẽ cần tìm nạp dữ liệu bổ sung bằng WorkManager hoặc API của JobScheduler.

Trong hướng dẫn này, chúng tôi sẽ tập trung vào thông báo.


Còn Google Cloud Messaging thì sao?

Nếu bạn đang sử dụng API máy chủ và máy khách Google Cloud Messaging (GCM), thì có một tin xấu: dịch vụ này đã bị từ chối và Google đang lên kế hoạch tắt dịch vụ GCM của hầu hết các ứng dụng GCM vào tháng 4 năm 2019. Nếu bạn vẫn sử dụng GCM, sau đó bạn nên bắt đầu di chuyển các dự án của mình sang FCM ngay bây giờ và phải hoàn thành việc di chuyển của mình trước tháng 4 năm 2019.

Thêm Firebase vào dự án Android của bạn

Hãy để xem cách dễ dàng để thêm hỗ trợ FCM cơ bản vào ứng dụng của bạn và sau đó sử dụng nó để gửi thông báo đẩy cho người dùng của bạn.

Vì FCM là dịch vụ Firebase, nên bạn sẽ cần thêm Firebase vào ứng dụng của mình:

  • Đi qua Bảng điều khiển Firebase.
  • Chọn dự án Thêm Add, tên lửa và đặt tên cho dự án của bạn.
  • Đọc các điều khoản và điều kiện. Nếu bạn vui lòng tiếp tục, thì hãy chọn tôi, tôi chấp nhận trên phạm vi, sau đó là dự án Tạo.
  • Chọn Thêm Add Firebase vào ứng dụng Android của bạn.
  • Nhập tên gói dự án của bạn, và sau đó nhấp vào ứng dụng Đăng ký.
  • Chọn Tải xuống Tải xuống google-services.json.
  • Trong Android Studio, kéo và thả tệp google-services.json vào thư mục ứng dụng của bạn.
  • Mở tệp build.gradle cấp dự án của bạn và thêm vào như sau:

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

  • Mở tệp build.gradle cấp ứng dụng của bạn và thêm plugin dịch vụ Google, cộng với các phụ thuộc cho Firebase Core và FCM:

// Thêm plugin dịch vụ của Google // áp dụng plugin: com.google.gms.google-services Vụ ăn cắp phụ thuộc {{file fileTree (dir: libs, bao gồm :) // Thêm Firebase Core // triển khai com.google.firebase: firebase-core: 16.0.1 // Thêm FCM // triển khai com.google.firebase: firebase-Messaging: 17.3.4

  • Khi được nhắc, đồng bộ hóa các thay đổi của bạn.
  • Tiếp theo, bạn cần cho Bảng điều khiển Firebase biết rằng bạn đã thêm thành công Firebase vào dự án của mình. Cài đặt ứng dụng của bạn trên điện thoại thông minh hoặc máy tính bảng Android vật lý hoặc Thiết bị ảo Android (AVD).
  • Quay lại Bảng điều khiển Firebase, chọn ứng dụng Run Run để xác minh cài đặt.
  • Khi Firebase đã phát hiện ra ứng dụng của bạn, bạn sẽ thấy một chiếc Xin chúc mừng. Chọn Tiếp tục vào bảng điều khiển.

Gửi thông báo đẩy đầu tiên của bạn với Firebase

Và đó là điều đó! Bây giờ bạn có thể gửi thông báo đẩy cho người dùng của mình và thông báo đó sẽ xuất hiện trong khay hệ thống của thiết bị (hiện tại, hãy giả sử ứng dụng của bạn không được đặt ở phía trước khi được gửi).

Bạn tạo thông báo FCM bằng Trình soạn thảo thông báo, có sẵn thông qua Bảng điều khiển Firebase:

  • Đảm bảo ứng dụng của bạn được cài đặt và chạy trong nền và thiết bị của bạn có kết nối Internet đang hoạt động.
  • Trong Bảng điều khiển Firebase, hãy chọn Tin nhắn đám mây trên nền tảng đám mây từ menu bên trái.

  • Chọn bầu Gửi đầu tiên của bạn.
  • Đặt tiêu đề của bạn và một số văn bản cơ thể, sau đó nhấp vào Tiếp theo.

  • Mở ứng dụng thả xuống Chọn ứng dụng, và chọn ứng dụng của bạn từ danh sách. Phần này cũng bao gồm một số tùy chọn nâng cao mà bạn có thể sử dụng để tạo thông báo được nhắm mục tiêu, dựa trên các yếu tố như phiên bản ứng dụng, ngôn ngữ của thiết bị và lần cuối cùng người dùng tương tác với ứng dụng của bạn. Chúng tôi đã giành chiến thắng khi sử dụng bất kỳ tùy chọn nào trong các thông báo thử nghiệm này, nhưng nếu bạn muốn xem những gì có sẵn, thì hãy chọn và điều chỉnh và khám phá sự thả xuống tiếp theo.

  • Khi bạn đã chỉnh sửa xong phần này, hãy nhấp vào Tiếp theo.
  • Giả sử bạn muốn gửi cái này ngay lập tức, hãy mở Send Gửi cho người dùng đủ điều kiện thả xuống và chọn ngay bây giờ.
  • Ở góc dưới bên phải của màn hình, nhấp vào Xuất bản.
  • Kiểm tra tất cả thông tin trong cửa sổ bật lên tiếp theo và nếu bạn vui lòng tiếp tục thì hãy chọn Xuất bản.

Sau một lát, tất cả các thiết bị khách mà bạn nhắm mục tiêu sẽ nhận được thông báo này trong khay hệ thống của họ.

Hầu hết thời gian, thông báo FCM sẽ được gửi ngay lập tức, nhưng đôi khi có thể mất vài phút để đến nơi, vì vậy đừng hoảng sợ nếu thông báo của bạn bị trì hoãn.

Đặt một số mục tiêu: Sự kiện chuyển đổi thông báo

Khi tạo thông báo, bạn sẽ thường có một mục tiêu - cho dù đó là điều khiến người dùng đó quay trở lại ứng dụng của bạn, thuyết phục họ tung ra mua hàng trong ứng dụng hay chỉ đơn giản là mở thông báo của bạn.

Bạn có thể chỉ định mục tiêu cho thông báo của mình, sử dụng Trình soạn thảo thông báo và sau đó theo dõi hiệu suất của thông báo đó trong bảng điều khiển báo cáo FCM.

Để đặt mục tiêu, nhấp để mở rộng phần Sự kiện chuyển đổi Trình biên dịch Chuyển hướng, sau đó mở danh sách thả xuống kèm theo và chọn từ các sự kiện chuyển đổi có sẵn.

Thông báo của bạn có thành công không?

Sau khi gửi thông báo, bạn có thể phân tích hiệu suất của nó trong bảng điều khiển báo cáo FCM, sẽ tự động tải mỗi khi bạn gửi mới hoặc bạn có thể truy cập trực tiếp vào bảng điều khiển.

Ngay cả khi bạn đã đặt ra bất kỳ mục tiêu chuyển đổi rõ ràng nào, bạn vẫn có thể đánh giá xem người dùng có hành động theo thông báo của mình hay không, bằng cách so sánh số lượng s được gửi, với số lượng s được mở.

Bạn cũng có thể chọn bất kỳ trong danh sách này, để xem dữ liệu gửi, mở và chuyển đổi dưới dạng biểu đồ. Nếu bạn đặt bất kỳ mục tiêu chuyển đổi nào, thì đây cũng là nơi bạn sẽ tìm thấy các số liệu thống kê liên quan đến các mục tiêu đó.

Điều gì nếu ứng dụng của tôi ở phía trước?

Thông báo FCM hoạt động khác nhau tùy thuộc vào trạng thái của ứng dụng khách.

Theo mặc định, ứng dụng của bạn đã thắng được hiển thị bất kỳ FCM nào mà nó nhận được trong khi ứng dụng này ở phía trước, vì vậy khi bạn gửi ở đó, không có gì đảm bảo người dùng của bạn sẽ thực sự xem cái đó .

Để hành động trên ứng dụng của bạn nhận được trong khi ứng dụng đó trong vấn đề xung quanh, bạn sẽ cần phải mở rộng FirebaseMessagingService, ghi đè phương thức onReceured và sau đó truy xuất nội dung của các sử dụng getNotification hoặc getData, tùy thuộc vào việc bạn có đang làm việc với dữ liệu hoặc thông báo hay cả hai.

Tạo một lớp Java mới có tên là My My MyireireMessagingService, và sau đó thêm vào như sau:

lớp công khai MyFirebaseMessagingService mở rộng FirebaseMessagingService {@Override void công khai onReceured (Remote) {super.onReceured (remote);

Bạn cũng cần phải tạo một đối tượng thông báo. Đây là cơ hội để bạn tùy chỉnh thông báo của mình, ví dụ: chọn âm thanh sẽ phát bất cứ khi nào người dùng nhận được thông báo này hoặc áp dụng biểu tượng thông báo tùy chỉnh. Bạn cũng sẽ cần lấy nội dung từ dữ liệu hoặc thông báo, ví dụ:

Thông báo hóa. Thông báo thông báo setStyle (thông báo mớiCompat.BigTextStyle ()) .setSound (Nhạc chuông Thông báo Trình quản lý thông báo Trình quản lý = (Thông báo Trình quản lý) getSystemService (Ngữ cảnh.NOTIFICATION_SERVICE); notifyManager.notify (0, notifyBuilder.build ()); }}

Khi bạn đã tạo ra dịch vụ của mình, đừng quên thêm nó vào Bản kê khai của bạn:

Bây giờ, mỗi khi ứng dụng của bạn nhận được một FCM trong khi nó ở phía trước, nó sẽ được gửi đến trình xử lý onReceured () và sau đó ứng dụng của bạn sẽ thực hiện hành động do bạn xác định, chẳng hạn như đăng thông báo hoặc cập nhật nội dung ứng dụng của bạn.

Thông báo hấp dẫn hơn: Nhắm mục tiêu người dùng của bạn

Cho đến thời điểm hiện tại, chúng tôi đã gửi thông báo tương tự đến toàn bộ cơ sở người dùng của mình, nhưng thông báo hấp dẫn hơn nhiều khi họ nhắm mục tiêu vào những người dùng cụ thể.

Bạn có thể sử dụng Trình soạn thảo thông báo để gửi các thông báo khác nhau đến các phần khác nhau trong cơ sở người dùng của bạn. Truy cập Trình soạn thảo thông báo và tạo thông báo của bạn như bình thường, nhưng trong phần Target Target, hãy nhấp vào và và. Điều này cho phép bạn truy cập vào một danh sách thả xuống mới, chứa các tùy chọn sau:

  • Phiên bản. Điều này cho phép bạn nhắm mục tiêu hoặc loại trừ các thiết bị chạy các phiên bản cụ thể của ứng dụng của bạn. Ví dụ: bạn có thể gửi thông báo cho những người đang chạy phiên bản miễn phí, khuyến khích họ nâng cấp lên phiên bản ứng dụng Premium Premium của bạn.
  • Ngôn ngữ. Bạn có thể sử dụng cài đặt này để nhắm mục tiêu hoặc loại trừ các ngôn ngữ và địa phương khác nhau mà ứng dụng của bạn hỗ trợ, chẳng hạn như tạo thông báo được tùy chỉnh cho các múi giờ hoặc ngôn ngữ khác nhau.
  • Đối tượng người dùng. Điều này cho phép bạn nhắm mục tiêu hoặc loại trừ các phần khác nhau trong đối tượng của bạn. Ví dụ: bạn có thể sử dụng cài đặt này để cám dỗ những người có lịch sử mua hàng trong ứng dụng, bằng cách giảm giá cho họ hoặc thu hút sự chú ý của họ đối với tất cả các sản phẩm trong ứng dụng mới tuyệt vời mà bạn vừa phát hành.
  • Tài sản người dùng. Nếu bạn thiết lập Firebase Analytics, thì bạn sẽ có quyền truy cập vào một loạt thông tin về đối tượng của mình, thông qua các thuộc tính người dùng. Bạn có thể sử dụng các thuộc tính này kết hợp với FCM, để gửi thông báo được nhắm mục tiêu đến các phần rất cụ thể trong cơ sở người dùng của bạn, chẳng hạn như những người trong độ tuổi 25-34 quan tâm đến thể thao.
  • Dự đoán. Nếu bạn thiết lập Dự đoán Firebase, thì bạn có thể nhắm mục tiêu người dùng dựa trên khả năng họ sẽ tham gia vào một hành vi cụ thể trong 7 ngày tới. Ví dụ: nếu Dự đoán cảnh báo rằng ai đó có khả năng thoát khỏi trò chơi di động của bạn, thì bạn có thể sử dụng FCM để mời họ tham gia vào một nhiệm vụ mới hoặc gửi cho họ một số tiền tệ trong trò chơi.
  • Ứng dụng cuối cùng tham gia. Nếu một người dùng đã khởi chạy ứng dụng của bạn trong một thời gian, thì bạn có thể sử dụng cài đặt này để gửi cho họ một vài thông báo, chỉ để nhắc nhở họ về tất cả nội dung tuyệt vời mà ứng dụng của bạn cung cấp.
  • Mở đầu tiên. Điều này cho phép bạn gửi thông báo dựa trên lần đầu tiên người dùng mở ứng dụng của bạn, ví dụ bạn có thể giúp người dùng mới tăng tốc bằng cách gửi cho họ thông báo có chứa lời khuyên và lời khuyên hữu ích.

Nhắm mục tiêu một thiết bị có mã thông báo đăng ký

Chúng tôi đã thấy cách gửi thông báo được nhắm mục tiêu dựa trên các yếu tố như tuổi người dùng, sở thích và lần cuối họ tham gia với ứng dụng của bạn, nhưng bạn có thể thậm chí nhận được cụ thể hơn. Trong phần cuối cùng này, tôi sẽ chỉ cho bạn cách gửi thông báo FCM đến Độc thân thiết bị.

Khi người dùng khởi chạy ứng dụng của bạn lần đầu tiên, SDK FCM sẽ tạo mã thông báo đăng ký cho phiên bản ứng dụng khách đó. Bạn có thể sử dụng FirebaseInstanceId.getInstance (). GetInstanceId () để nắm bắt mã thông báo đăng ký này, sau đó gửi thông báo tới mã thông báo cụ thể này.

Lưu ý rằng trong một dự án trong thế giới thực, bạn có thể nắm bắt mã thông báo bằng cách gửi nó đến máy chủ ứng dụng của bạn và lưu trữ nó bằng phương pháp ưa thích của bạn, nhưng để giúp mọi thứ đơn giản, tôi sẽ chỉ in mã thông báo này lên Android Studio Log Logcat.

Tại đây, tôi đã hoàn thành MainActivity:

nhập android.support.v7.app.AppCompatActivity; nhập android.os.Bundle; nhập android.support.annotation.NonNull; nhập android.util.Log; nhập com.google.android.gms.t task.OnCompleteListener; nhập com.google.android.gms.t task.Task; nhập com.google.firebase.iid.FirebaseInstanceId; nhập com.google.firebase.iid.InstanceIdResult; lớp công khai MainActivity mở rộng AppCompatActivity {chuỗi tĩnh riêng cuối TAG = "MainActivity"; @Override void void onCreate (Gói đã lưuInstanceState) {super.onCreate (yetInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (OnCompleteListener mới() {@Override void công khai onComplete (Nhiệm vụ @NonNull tác vụ) {if (! task.isSuccessful ()) {// Để làm // return; } // Nhận mã thông báo ID Instance // String token = task.getResult (). GetToken (); Chuỗi tin nhắn = getString (R.opes.fcm_token, mã thông báo); Log.d (TAG, thông điệp); }}); }}

Mở tệp String.xml của bạn và tạo tài nguyên chuỗi trong fcm_token của chúng tôi mà chúng tôi tham khảo trong MainActivity của chúng tôi:

Mã thông báo FCM:% s

Bây giờ bạn có thể truy xuất mã thông báo duy nhất của thiết bị của bạn:

  • Cài đặt dự án của bạn trên thiết bị Android được kết nối hoặc AVD.
  • Mở Android Studio Log Logcat, bằng cách chọn tab Nhật ký Logcat (nơi con trỏ được định vị trong ảnh chụp màn hình sau).

  • Thiết bị mã thông báo của bạn sẽ được in ra phần Log Debug của Logcat, vì vậy hãy mở danh sách thả xuống và chọn Debug.

Tùy thuộc vào lượng thông tin trong Logcat của bạn, có thể khó phát hiện ra dòng bạn đang tìm kiếm. Nếu bạn gặp khó khăn, sau đó chạy tìm kiếm từ token, mã hóa hoặc thử đóng và sau đó khởi chạy lại ứng dụng.

Khi bạn đã truy xuất mã thông báo, bạn có thể sử dụng nó để gửi thông báo đẩy tới thiết bị cụ thể này:

  • Truy cập vào Bảng điều khiển Firebase và chọn dự án của bạn từ menu thả xuống, nếu bạn đã trú ẩn.
  • Chọn tin nhắn trên nền tảng đám mây trên mạng từ menu bên trái.
  • Nhấp vào nút mới Thông báo mới.
  • Nhập tiêu đề và văn bản của bạn, như bình thường, nhưng sau đó nhấp vào Thử nghiệm trên thiết bị.

  • Sao chép / dán mã thông báo của bạn vào trường Thêm Thêm một trường Phiên bản, và sau đó nhấp vào biểu tượng nhỏ màu xanh + + xuất hiện.
  • Chọn hộp kiểm đi kèm token.

  • Nhấp vào thử nghiệm.

Thông báo này sẽ chỉ xuất hiện trên thiết bị khách được nhắm mục tiêu.

Gói lại

Trong bài viết này, tôi đã chỉ cho bạn cách gửi thông báo đẩy Android, sử dụng Firebase Cloud Messaging và cách tạo thông báo nhắm mục tiêu đến các phần khác nhau trong cơ sở người dùng của bạn.

Bạn sẽ sử dụng FCM trong các dự án Android của riêng bạn? Cho chúng tôi biết trong các ý kiến ​​dưới đây!

Trước khi chúng ta bước vào một cuộc hỗn chiến của các thông báo CE 2019, Arm đã trình bày chi tiết về bộ xử lý tín hiệu hình ảnh (IP) mới nhất c...

Tích cựcTrải nghiệm Android One ạch 2 năm cập nhật được bảo đảm Chất lượng nhôm cao cấp Máy ảnh Decent cho giá Màn hình ắc nét Rất vừa phải Hỗ trợ ạc nhanh 4.0 (tại ...

LựA ChọN CủA NgườI Biên TậP