Pemberitahuan tolak memainkan peranan penting dalam penglibatan dan pengekalan pengguna dalam apl mudah alih anda, memastikan pengguna sentiasa dikemas kini dan mewujudkan rasa terdesak yang membawa kepada pembelian. Dan dalam Android, kami mendapat faedah tambahan daripada perkhidmatan pemberitahuan Firebase Cloud Messaging (FCM), yang bertindak sebagai orang tengah antara pelayan apl dan peranti Android pengguna. Ia membantu penghantaran pemberitahuan tolak, walaupun jika apl itu tidak aktif atau pengguna menggunakan apl lain pada peranti mereka.
Firebase Cloud Messaging (FCM) digunakan untuk menghantar mesej data dan makluman kepada pengguna, terima kasih kepada sistem pemesejan silang yang mantap. Platform iOS, Web dan Android semuanya disokong oleh FCM. Mesej dengan muatan data sehingga 4kb boleh dihantar menggunakan pemberitahuan tolak FCM.
Dalam artikel ini, kami akan meneroka integrasi langkah demi langkah pemberitahuan tolak ke dalam apl Android dan membincangkan aspek kritikal pelaksanaan. Kami juga akan memperkenalkan beberapa produk dan alatan yang boleh memudahkan dan meningkatkan penglibatan pengguna.
Pemberitahuan tolak mudah alih membantu meningkatkan penglibatan pengguna, pengekalan pelanggan dan keseluruhan pengalaman pengguna dalam aplikasi anda. Apabila pemberitahuan tolak digunakan dengan betul, ia boleh meningkatkan keberkesanan apl mudah alih dengan ketara merentas pelbagai domain perniagaan.
Pemberitahuan tolak boleh digunakan untuk kes penggunaan dan tujuan yang berbeza dalam apl Android anda, termasuk:
i) Mengemas kini pengguna tentang status tempahan atau jadual dalam talian mereka.
ii) Berikan penjelasan dan kemas kini untuk pesanan dalam talian yang telah dibuat oleh pengguna.
iii) Menasihati pengguna tentang perubahan di bahagian belakang dan membantu mereka menjejaki pakej mereka.
iv) Mencipta gembar-gembur mengenai acara yang dipautkan kepada apl dan memperkenalkan pengguna kepada tawaran, promosi dan peluang baharu.
v) Menggalakkan pengguna mencuba ciri apl baharu dengan mesej menggoda dan memberitahu mereka tentang kemas kini pelayan dan perubahan bahagian belakang yang lain.
Anda perlu mempunyai alatan dan perkhidmatan ini untuk berjaya melaksanakan pemberitahuan tolak dalam apl Android FCM anda:
i) Android Studio – Ini ialah IDE yang digunakan untuk pembangunan Android.
ii) Pengetahuan & Pemahaman Asas – Anda memerlukan pemahaman asas tentang pembangunan dan struktur projek Android serta konfigurasi fail nyata.
iii) Akaun Firebase – Anda sepatutnya mempunyai akaun Firebase untuk membuat dan mengurus tetapan projek anda.
iv) Ketersediaan Internet – Ujian integrasi dan persediaan firebase memerlukan sambungan Internet.
Lawati Firebase Console.
Buat projek anda dengan Memberinya nama dan Klik teruskan.
Untuk konfigurasi lanjut, anda boleh mendayakan atau melumpuhkan perkhidmatan Google Analitis untuk mendapatkan analitis data untuk apl anda.
Untuk melengkapkan persediaan, anda perlu menyemak tetapan projek; maka anda boleh membuat projek anda.
Selepas anda membuat projek anda, anda perlu melakukan konfigurasi projek tambahan untuk pelaksanaan pemberitahuan tolak.
Anda perlu mengklik pada ikon Android dalam papan pemuka untuk menambah apl Android. Seterusnya, masukkan nama pakej Android. Nama pakej ini mestilah sama dengan nama pakej dalam projek anda (iaitu, com.app.demoapp).
Anda juga boleh memasukkan nama panggilan apl anda untuk mengenal pasti apl anda dalam konsol.
Tambah kunci SHA-1 untuk apl anda. Anda perlu menggunakan arahan ini untuk menjana kunci SHA-1 anda dalam terminal anda: Sekarang salin kekunci SHA-1 dan tampalkannya ke dalam konsol Firebase.
./gradlew signingReport
Akhir sekali Klik ‘Daftar Apl’ untuk menyelesaikan konfigurasi.
Setelah anda selesai mendaftarkan apl anda, anda boleh memuat turun fail google-services.json dan menyimpannya pada komputer anda.
Kini anda perlu menambahkan google-services.json pada projek Android anda, failkan ke direktori apl projek Android anda.
MyApp/ ├── app/ │ ├── src/ │ ├── build.gradle │ ├── google-services.json ├── build.gradle ├── settings.gradle
Seterusnya, tambahkan Firebase SDK pada Projek Anda, dalam build.gradle tambah laluan kelas perkhidmatan Google:
buildscript { repositories { google() mavenCentral() } dependencies { // Add this line classpath 'com.google.gms:google-services:4.3.10' } }
dalam app/build.gradle tambahkan kebergantungan berikut:-
apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' android { // ... } dependencies { // Add these lines implementation platform('com.google.firebase:firebase-bom:29.0.4') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-messaging' }
Selepas anda menyelesaikan langkah ini, anda boleh mengklik ‘Segerakkan Sekarang’ dalam Android Studio untuk menyegerakkan projek anda dengan Firebase.
Buka build.gradle Tahap Projek Anda: Navigasi ke direktori akar projek Android anda dan cari fail build.gradle.
Pastikan repositori google() dan mavenCentral() disertakan dalam bahagian repositori.
buildscript { repositories { // Check that you have these lines google() mavenCentral() } dependencies { // Add this line classpath 'com.google.gms:google-services:4.3.10' } } allprojects { repositories { // Check that you have these lines google() mavenCentral() } }
Cari dan cari fail build.gradle dalam direktori apl projek anda, kemudian tambahkan pemalam google-services di penghujung fail dan tambahkan kebergantungan Firebase dan Firebase Messaging dalam bahagian dependencies.
./gradlew signingReport
Dengan langkah-langkah ini selesai, projek anda dikonfigurasikan dengan kebergantungan Firebase, termasuk Pemesejan Firebase untuk pemberitahuan tolak. Biar kami sekarang meneruskan dengan persediaan perkhidmatan Pemesejan Firebase dan mengendalikan pemberitahuan dalam apl anda.
Buat kelas baharu bernama MyMessagingService yang memanjangkan FirebaseMessagingService.
Anda perlu mengatasi Kaedah onMessageReceived untuk mengendalikan mesej masuk apabila apl anda berada dalam keadaan latar depan. Kemudian laksanakan logik untuk mengendalikan pemberitahuan dan tunjukkan kepada pengguna secara pilihan.
MyApp/ ├── app/ │ ├── src/ │ ├── build.gradle │ ├── google-services.json ├── build.gradle ├── settings.gradle
Buka fail AndroidManifest.xml dalam projek anda.
Kini anda perlu mendaftar MyMessagingService dalam manifes untuk mengendalikan mesej FCM.
buildscript { repositories { google() mavenCentral() } dependencies { // Add this line classpath 'com.google.gms:google-services:4.3.10' } }
Untuk menerima pemberitahuan tolak, apl anda perlu mendapatkan token pendaftaran FCM. Token ini secara unik mengenal pasti tika apl pada peranti.
Anda boleh mengambil token pendaftaran FCM dalam FirebaseMessagingService anda atau mana-mana tempat lain yang sesuai dalam apl anda. Mari lihat cara melakukannya dalam FirebaseMessagingService.
Kemas kini MyMessagingService:
apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' android { // ... } dependencies { // Add these lines implementation platform('com.google.firebase:firebase-bom:29.0.4') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-messaging' }
Anda boleh mengambil token dalam Aktiviti atau Fragmen dan menyimpan atau menggunakannya seperti yang diperlukan.
buildscript { repositories { // Check that you have these lines google() mavenCentral() } dependencies { // Add this line classpath 'com.google.gms:google-services:4.3.10' } } allprojects { repositories { // Check that you have these lines google() mavenCentral() } }
Menggunakan kaedah ini, anda boleh mendapatkan token pendaftaran FCM dalam apl Android anda. Token boleh diambil sama ada dalam FirebaseMessagingService atau mana-mana Aktiviti atau Fragmen. Token ini penting untuk menghantar pemberitahuan tolak yang disasarkan ke peranti tertentu.
Jika anda ingin menghantar pemberitahuan daripada pelayan, anda perlu membuat permintaan POST ke API FCM.
Anda perlu Dapatkan Kunci Pelayan
Permintaan cURL: Perintah cURL ini akan digunakan untuk menghantar pemberitahuan. Gantikan
./gradlew signingReport
Mesej data ialah sejenis mesej yang boleh membawa pasangan nilai kunci tersuai dan dikendalikan secara berbeza daripada mesej pemberitahuan. Mesej data diterima dalam kaedah onMessageReceived FirebaseMessagingService , tidak kira sama ada apl itu berada di latar depan atau latar belakang.
Kemas kini MyMessagingService
MyApp/ ├── app/ │ ├── src/ │ ├── build.gradle │ ├── google-services.json ├── build.gradle ├── settings.gradle
Bermula dengan Android 8.0 (API tahap 26), semua pemberitahuan mesti diberikan kepada saluran. Ini membolehkan pengguna mengawal tetapan pemberitahuan untuk setiap saluran.
Buat Kaedah untuk Menyediakan Saluran Pemberitahuan:
buildscript { repositories { google() mavenCentral() } dependencies { // Add this line classpath 'com.google.gms:google-services:4.3.10' } }
Panggil Kaedah Ini dalam Aktiviti Utama atau Kelas Aplikasi Anda:
apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' android { // ... } dependencies { // Add these lines implementation platform('com.google.firebase:firebase-bom:29.0.4') implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-messaging' }
Sebagai alternatif, anda boleh menghubungi NotificationUtils.createNotificationChannel(this); dalam kelas Aplikasi anda jika anda mempunyai satu:
buildscript { repositories { // Check that you have these lines google() mavenCentral() } dependencies { // Add this line classpath 'com.google.gms:google-services:4.3.10' } } allprojects { repositories { // Check that you have these lines google() mavenCentral() } }
Kemas kini Pembuat Pemberitahuan Anda untuk Menggunakan ID Saluran:
apply plugin: 'com.android.application' android { compileSdkVersion 33 defaultConfig { applicationId "com.example.myandroidapp" minSdkVersion 21 targetSdkVersion 33 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } } dependencies { implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.8.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.legacy:legacy-support-v4:1.0.0' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' // Add Firebase BOM implementation platform('com.google.firebase:firebase-bom:29.0.4') // Add Firebase Messaging dependency implementation 'com.google.firebase:firebase-messaging' } // Add this line at the bottom of the file apply plugin: 'com.google.gms.google-services'
Apabila pemberitahuan tolak dilaksanakan, kami perlu melakukan ujian untuk memastikan ia dilaksanakan dengan betul.
Dalam Android Studio, anda boleh membuka logcat, View > Windows Alat > Logcat.
Kami juga boleh menapis output logcat menggunakan teg yang kami gunakan dalam kelas FirebaseMessagingService. Aplikasi mesti dijalankan pada peranti atau melalui emulator.
Apabila pemberitahuan diterima, kita boleh melihat data dalam logcat seperti ini:
import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Build; import androidx.core.app.NotificationCompat; import com.google.firebase.messaging.FirebaseMessagingService; import com.google.firebase.messaging.RemoteMessage; public class MyMessagingService extends FirebaseMessagingService { @Override public void onMessageReceived(RemoteMessage remoteMessage) { // Handle the received message if (remoteMessage.getNotification() != null) { // Get the message body String messageBody = remoteMessage.getNotification().getBody(); // Send a notification sendNotification(messageBody); } } private void sendNotification(String messageBody) { Intent intent = new Intent(this, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT); String channelId = getString(R.string.default_notification_channel_id); NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, channelId) .setSmallIcon(R.drawable.ic_notification) .setContentTitle(getString(R.string.app_name)) .setContentText(messageBody) .setAutoCancel(true) .setContentIntent(pendingIntent); NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { NotificationChannel channel = new NotificationChannel(channelId, "Channel human readable title", NotificationManager.IMPORTANCE_DEFAULT); notificationManager.createNotificationChannel(channel); } notificationManager.notify(0, notificationBuilder.build()); } }
Data mesej boleh dilihat seperti ini:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myandroidapp"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <!-- Add this service --> <service android:name=".MyMessagingService" android:exported="false"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service> <!-- Other activities and services --> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Dalam artikel ini kami mempelajari tentang pemberitahuan tolak, bersama-sama dengan pendekatan langkah demi langkah untuk pelaksanaan. Kami mempelajari cara menyediakan projek dalam Firebase console dan cara melengkapkan konfigurasi yang diperlukan dalam tetapan projek Firebase, supaya anda boleh mula menghantar pemberitahuan Android kepada pengguna Android anda.
Anda perlu bermula dengan menyediakan projek Firebase dan memuat turun fail google-services.json. Selepas itu, anda perlu meletakkan direktori apl fail ini dan mengubah suai fail build.gradle untuk memasukkan kebergantungan Firebase.
Kemudian, anda perlu mencipta kelas yang akan mengendalikan mesej masuk dan mendaftarkan kelas perkhidmatan ini dalam AndroidManifest.xml. Selepas menambah perkhidmatan dalam fail manifes, anda perlu mengambil token FCM yang digunakan untuk mengenal pasti apl anda secara unik, supaya pemberitahuan boleh dihantar ke peranti yang disasarkan.
Pemberitahuan boleh diuji dengan menghantar mesej daripada Firebase Console dan menggunakan logcat Android Studio untuk mengesahkan penghantaran. Untuk mengaktifkan pemberitahuan sebelah pelayan, gunakan permintaan cURL dengan kunci pelayan Firebase anda dan token FCM peranti.
Untuk mengekalkan keserasian dengan versi Android kemudian, anda perlu memproses mesej data dalam 'FirebaseMessagingService` anda dan mengurus saluran pemberitahuan untuk konfigurasi yang canggih.
Pemberitahuan tolak, yang menawarkan kemas kini yang berkaitan dan maklumat tersuai – dan boleh meningkatkan pengekalan pengguna dan kadar penukaran – adalah penting untuk menggalakkan penglibatan pengguna.
Baca dokumen Firebase dan Android SDK rasmi untuk mendapatkan maklumat lanjut dan arahan yang mendalam. Tapak web ini menyediakan panduan menyeluruh dan amalan terbaik industri untuk memasukkan pemberitahuan tolak ke dalam aplikasi anda.
Atas ialah kandungan terperinci Panduan Langkah demi Langkah Pemberitahuan Push Android. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!