Rumah > Java > javaTutorial > teks badan

Panduan Langkah demi Langkah Pemberitahuan Push Android

Linda Hamilton
Lepaskan: 2024-11-18 08:46:02
asal
993 orang telah melayarinya

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.

Memahami Pemberitahuan Push Android

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.

Pendekatan Pelaksanaan Pemberitahuan Push dalam Aplikasi Android

Prasyarat

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.

Langkah 1. Sediakan Projek Firebase anda

Lawati Firebase Console.

Buat projek anda dengan Memberinya nama dan Klik teruskan.

Android Push Notifications Step by Step Guide

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.

Mendaftarkan apl anda dalam papan pemuka projek

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).

Android Push Notifications Step by Step Guide

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

Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Akhir sekali Klik ‘Daftar Apl’ untuk menyelesaikan konfigurasi.

Android Push Notifications Step by Step Guide

Sediakan Perkhidmatan Google

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

Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Tambahkan Firebase SDK

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'
    }
}

Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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'
}

Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Selepas anda menyelesaikan langkah ini, anda boleh mengklik ‘Segerakkan Sekarang’ dalam Android Studio untuk menyegerakkan projek anda dengan Firebase.

Langkah 2. Konfigurasikan Projek Android Anda

build.gradle Peringkat Projek

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()
    }
}

Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Buat perubahan dalam build.gradle

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

Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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.

Langkah 3. Laksanakan FCM

Tambahkan Perkhidmatan untuk Mengendalikan Mesej FCM

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

Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Daftar dalam fail AndroidManifest.xml

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'
    }
}

Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Langkah 4: Dapatkan Token Pendaftaran FCM

Untuk menerima pemberitahuan tolak, apl anda perlu mendapatkan token pendaftaran FCM. Token ini secara unik mengenal pasti tika apl pada peranti.

Contoh Kod untuk Mengambil Token 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'
}

Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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()
    }
}

Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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.

Langkah 5: Hantar Pemberitahuan Tolak

Jika anda ingin menghantar pemberitahuan daripada pelayan, anda perlu membuat permintaan POST ke API FCM.

Anda perlu Dapatkan Kunci Pelayan

  • Dalam Firebase Console → Tetapan Projek → “Gambaran Keseluruhan Projek” → “Pemesejan Awan”.
  • Dalam "Bukti kelayakan projek", anda akan menemui kunci Pelayan.

Permintaan cURL: Perintah cURL ini akan digunakan untuk menghantar pemberitahuan. Gantikan dengan kunci pelayan sebenar anda dan dengan token FCM peranti sasaran.

./gradlew signingReport

Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • https://fcm.googleapis.com/fcm/send titik akhir API.
  • H "Keizinan: key=": Ini ialah pengepala kebenaran dengan kunci pelayan anda.
  • H "Content-Type: application/json": pengepala jenis kandungan.
  • d '{ ... }': Ini ialah muatan JSON yang mempunyai pemberitahuan dan data anda.

Topik Lanjutan

Mengendalikan Mesej Data

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.

Contoh untuk Mengendalikan Mesej Data

Kemas kini MyMessagingService

MyApp/
├── app/
│ ├── src/
│ ├── build.gradle
│ ├── google-services.json
├── build.gradle
├── settings.gradle

Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Menguruskan Saluran Pemberitahuan

Bermula dengan Android 8.0 (API tahap 26), semua pemberitahuan mesti diberikan kepada saluran. Ini membolehkan pengguna mengawal tetapan pemberitahuan untuk setiap saluran.

Contoh untuk Membuat Saluran Pemberitahuan

Buat Kaedah untuk Menyediakan Saluran Pemberitahuan:

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        // Add this line
        classpath 'com.google.gms:google-services:4.3.10'
    }
}

Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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'
}

Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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()
    }
}

Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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'

Salin selepas log masuk

Menguji Pemberitahuan Tolak

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());
    }
}

Salin selepas log masuk

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>
Salin selepas log masuk

Kesimpulan

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan