Перейти к основному содержимому

Android библиотека

Ниже описано использование андроид библиотеки для отправки пуш-сообщений.

Подготовка

Скачайте библиотеку отправки пуш-сообщений и установите в свое мобильное приложение.

1. Если вы используете Gradle для включения проекта GitHub в свою сборку, вам необходимо:

Добавьте его в корневой файл build.gradle в конце репозитория.

allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}

2. Установите зависимости

dependencies {
implementation 'com.github.PushedLab:Pushed.Messaging.Android.Library:1.3.1'
}

3. Создайте свой класс, расширяющий класс MessageReceiver, и переопределите onBackgroundMessage(Context?,JSONObject) для обработки сообщений, даже если ваше приложение не запущено.

class MyMessageReceiver : MessageReceiver() {
override fun onBackgroundMessage(context: Context?,message: JSONObject) {
Log.d("Mybackground","MyBackground message: $message")
}

4. Добавьте следующее в AndroidManifest.xml вашего приложения:

    <application>
...
<receiver
android:name=".MyMessageReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="ru.pushed.action.MESSAGE" />
</intent-filter>
</receiver>
...
</application>

Для поддержки Fcm

  1. Добавьте в корневой build.gradle следующие зависимости:
buildscript {
...
dependencies {
classpath 'com.google.gms:google-services:4.4.2'
...
}
}
  1. Поместите google-services.json в папку Android/app.

  2. Добавьте в app/build.gradle следующий плагин:

...
apply plugin: 'com.google.gms.google-services'

Для поддержки Hpk

  1. Добавьте в корневой build.gradle:
buildscript {
...
repositories {
...
maven { url 'https://developer.huawei.com/repo/' }
}
dependencies {
classpath 'com.huawei.agconnect:agcp:1.9.1.300'
...
}
}
allprojects {
repositories {
...
maven { url 'https://developer.huawei.com/repo/' }
}
}
  1. Поместите agconnect-services.json в папку Android/app

  2. Добавьте в app/build.gradle:

...
dependencies {
...
implementation 'com.huawei.hms:push:6.12.0.300'
}
...
apply plugin: 'com.huawei.agconnect'

Для поддержки RuStore

Выполните следующие действия: Добавьте в AndroidManifest.xml:

<application>
...
<meta-data
android:name="ru.rustore.sdk.pushclient.project_id"
android:value="Your RuStore project ID" />
...
</application>

Реализация

1. Для инициализации библиотеки вам необходимо создать экземпляр Pushed Service.

pushedService= PushedService(this,MyMessageReceiver::class.java)
// context - Context
// messageReceiverClass - your own messageReceiverClass class
PushedService(private val context : Context, messageReceiverClass: Class<*>?);

2. Чтобы запустить службу или привязать ее к активной службе, вам необходимо вызвать PushedService.start.

override fun onResume() {
super.onResume()
// token - To send a message to a specific user, you need to know his Client token.
token=pushedService.start(){message ->
Log.d("MyActivity","Message received: $message")
//return true if message handled.
//if you return false then service call onBackgroundMessage.
true
}
Log.d("MyActivity",Client token: $token")

}
//OnMessage - Function for handle messages if you activity in foreground
//return Client token
PushedService.start(onMessage:(JSONObject)->Boolean):String?

3. Чтобы библиотека работала корректно, вам необходимо вызывать PushedService.unbind вручную, когда приложение теряет активность.

override fun onStop() {
pushedService.unbindService()
super.onStop()
}