Быков Д. Ю. / Виджет чата поддержки для мобильных приложений
Подключение
Для подключения SDK в фале build.gradle вашего модуля в секции dependencies необходимо добавить зависимость implementation ‘ru.tensor.sabycom:sabycom:21.6219.63’:
Вам так же необходимо позаботится о том что бы между сессиями userId для зарегестрированного пользователя был одинаковым. Например:
fun getUserId(): UUID{
val sharedPreferences = getSharedPreferences("PrefName", MODE_PRIVATE)
var userIdString = sharedPreferences.getString("UserIdKey",null)
if (userIdString == null){
userIdString = UUID.randomUUID().toString()
// edit is extensions from androidx
sharedPreferences.edit {
putString("UserIdKey",userIdString)
}
}
return requireNotNull(UUID.fromString(userIdString))
}
Чтобы показать виджет, вызовите в вашем фрагменте Sabycom.show(activity). Чтобы скрыть виджет, вызовите Sabycom.hide().
class DemoFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
val binding = DemoFragmentBinding.inflate(inflater)
binding.showSabycom.setOnClickListener {
Sabycom.show(requireActivity() as AppCompatActivity)
}
return binding.root
}
}
Для получения количества непрочитанных сообщений подпишитесь на обновления счетчика с помощью метода Sabycom.unreadConversationCount(callback) с коллбеком который будет вызван при каждом изменении счетчика.
class DemoViewModel : ViewModel() {
private val messageCounterLiveData = MutableLiveData(0)
val messageCounter: LiveData<Int> = messageCounterLiveData
init {
Sabycom.unreadConversationCount { count -> messageCounterLiveData.value = count }
}
}
Подписка на уведомления
Для работы уведомлений на устройствах с поддержкой Google Mobile Services интегрируйте в ваш проект Firebase Cloud Messaging. Для поддержки устройств с Huawei Mobile Services интегрируйте Huawei Push Kit.
Чтобы подписаться на уведомления передайте токен и тип поддерживаемых сервисов в Sabycom с помощью метода Sabycom.sendToken(token, serviceType).
Для обеспечения показа уведомлений реализуйте сервис, расширяющий базовый MessagingService.
В методе onMessageReceived проверьте принадлежность данных push-сообщения виджету с помощью метода Sabycom.isSabycomPushNotification(payload).
В случае если данные содержат информацию для отображения Sabycom уведомления метод вернет true и вам необходимо вызвать метод Sabycom.handlePushNotification(payload) для показа этого уведомления.
В методе onNewToken вам необходимо передать обновленный токен в Sabycom посредством вызова Sabycom.sendToken(token, serviceType).
Google Mobile Services
internal class YourPushMessagingService : FirebaseMessagingService() {
override fun onMessageReceived(message: RemoteMessage) {
val payload = message.data
// Проверяет, пришел push от Sabycom или от другого сервиса
if (Sabycom.isSabycomPushNotification(payload)) {
// Показывает всплывающее уведомление с новым сообщением
Sabycom.handlePushNotification(payload)
} else {
//...
}
}
override fun onNewToken(token: String) {
Sabycom.sendToken(token, ServiceType.GOOGLE)
}
}
Huawei Mobile Services
internal class YourPushMessagingService : HmsMessageService() {
override fun onMessageReceived(message: RemoteMessage?) {
super.onMessageReceived(message)
val payload = message?.dataOfMap
// Проверяет, пришел push от Sabycom или от другого сервиса
if (payload != null && Sabycom.isSabycomPushNotification(payload)) {
// Показывает всплывающее уведомление с новым сообщением
Sabycom.handlePushNotification(payload)
} else {
//...
}
}
override fun onNewToken(token: String?) {
super.onNewToken(token)
if (!token.isNullOrEmpty()) {
Sabycom.sendToken(token, ServiceType.HUAWEI)
}
}
}
Установите иконку для отображения в push-уведомлении. Иконка должна быть монохромной и соответствовать стандартам .
Для создания иконки используйте Image Asset Studio.
Вы так же можете установить какой цвет будет использоваться в push-уведомлении. По умолчанию берется атрибут colorPrimary из темы вашего приложения.
Версии Android 6.0 и ниже используют этот цвет в качестве фона для иконки уведомления. Начиная с версии Android 7.0 помимо цвета иконки дополнительно окрашивается название приложения.
android-sabycom
Быков Д. Ю. / Виджет чата поддержки для мобильных приложений
Подключение
Для подключения SDK в фале build.gradle вашего модуля в секции dependencies необходимо добавить зависимость implementation ‘ru.tensor.sabycom:sabycom:21.6219.63’:
Структура проекта
Использование SDK
Установка виджета
Sabycom.show(activity). Чтобы скрыть виджет, вызовитеSabycom.hide().Sabycom.unreadConversationCount(callback)с коллбеком который будет вызван при каждом изменении счетчика.Подписка на уведомления
Google Mobile Servicesинтегрируйте в ваш проект Firebase Cloud Messaging.Для поддержки устройств с
Huawei Mobile Servicesинтегрируйте Huawei Push Kit.Sabycom.sendToken(token, serviceType).В методе
onMessageReceivedпроверьте принадлежность данных push-сообщения виджету с помощью методаSabycom.isSabycomPushNotification(payload). В случае если данные содержат информацию для отображения Sabycom уведомления метод вернет true и вам необходимо вызвать методSabycom.handlePushNotification(payload)для показа этого уведомления.В методе
onNewTokenвам необходимо передать обновленный токен в Sabycom посредством вызоваSabycom.sendToken(token, serviceType).AndroidManifest.xml.Для создания иконки используйте Image Asset Studio.
colorPrimaryиз темы вашего приложения.Версии Android 6.0 и ниже используют этот цвет в качестве фона для иконки уведомления. Начиная с версии Android 7.0 помимо цвета иконки дополнительно окрашивается название приложения.