VKID.init(
...
groupSubscriptionLimit = GroupSubscriptionLimit(
maxSubscriptionsToShow = 3, // Количество показов окна подписки.
periodInDays = 7, // Период для этого количества показов.
)
)
Параметр | Описание |
---|---|
snackbarHostState | Отображение Snackbar о статусе подписки |
state | Отображение окна подписки на сообщество |
groupId | ID сообщества. Его можно увидеть на странице сообщества в ВКонтакте в разделе Подробная информация |
onSuccess | Callback-метод, который вызывается при успешной подписке на сообщество |
onFail | Callback-метод, который вызывается при неуспешной подписке на сообщество |
accessTokenProvider | Использование внешнего Access token |
style | Стилизация окна подписки на сообщество |
dependencies {
implementation("com.vk.id:group-subscription-compose:${sdkVersion— указывается последняя версия SDK, смотрите номер версии в начале страницы}")
}
@Composable
fun ScreenWithGroupSubscription() {
val snackbarHostState = SnackbarHostState()
GroupSubscriptionSnackbarHost(
snackbarHostState = snackbarHostState,
)
}
@Composable
fun ScreenWithGroupSubscription() {
val snackbarHostState = SnackbarHostState()
GroupSubscriptionSnackbarHost(/* ... */)
val state = rememberGroupSubscriptionSheetState()
GroupSubscriptionSheet(
state = state,
groupId = "12345",
onSuccess = { /* Успешная подписка на сообщество */ },
onFail = { /* Ошибка во время подписки на сообщество */ },
snackbarHostState = snackbarHostState,
)
}
@Composable
fun ScreenWithGroupSubscription() {
...
val state = rememberGroupSubscriptionSheetState()
...
Button(onClick = { state.show() })
}
OneTap(
...
authParams = VKIDAuthUIParams {
scopes = setOf("groups")
}
)
@Composable
fun ScreenWithGroupSubscription() {
...
GroupSubscriptionSheet(
...
accessTokenProvider = { MyTokenStorage.getAccessToken() },
)
}
Класс | Описание |
---|---|
GroupSubscriptionStyle | Класс, который определяет стиль окна подписки. Возможные значения:
|
@Composable
fun ScreenWithGroupSubscription() {
...
GroupSubscriptionSheet(
...
style = GroupSubscriptionStyle.Light(
cornersStyle = GroupSubscriptionSheetCornersStyle.Custom(2f),
buttonsCornersStyle = GroupSubscriptionButtonsCornersStyle.Default,
sizeStyle = GroupSubscriptionButtonsSizeStyle.SMALL_32,
)
)
}
Параметр | Описание |
---|---|
GroupSubscriptionSnackbarHost | Отображение Snackbar о статусе подписки |
subscribeToGroupId | ID сообщества. Его можно увидеть на странице сообщества в ВКонтакте в разделе Подробная информация |
onSuccessSubscribingToGroup | Callback-метод, который вызывается при успешной подписке на сообщество |
onFailSubscribingToGroup | Callback-метод, который вызывается при неуспешной подписке на сообщество |
groupSubscriptionStyle | Стилизация окна подписки на сообщество |
@Composable
fun ScreenWithOneTap() {
val snackbarHostState = SnackbarHostState()
GroupSubscriptionSnackbarHost(
snackbarHostState = snackbarHostState,
)
}
@Composable
fun ScreenWithOneTap() {
val snackbarHostState = SnackbarHostState()
...
OneTap(
...
subscribeToGroupId = "12345",
onSuccessSubscribingToGroup = { /* Успешная подписка на сообщество */ },
onFailSubscribingToGroup = { /* Ошибка во время подписки на сообщество */ },
groupSubscriptionSnackbarHostState = snackbarHostState,
groupSubscriptionStyle = GroupSubscriptionStyle.Light(),
)
}
Параметр | Описание |
---|---|
GroupSubscriptionSnackbarHost | Отображение Snackbar о статусе подписки |
subscribeToGroupId | ID сообщества. Его можно увидеть на странице сообщества в ВКонтакте в разделе Подробная информация |
onSuccessSubscribingToGroup | Callback-метод, который вызывается при успешной подписке на сообщество |
onFailSubscribingToGroup | Callback-метод, который вызывается при неуспешной подписке на сообщество |
groupSubscriptionStyle | Стилизация окна подписки на сообщество |
@Composable
fun ScreenWithBottomSheet() {
val snackbarHostState = SnackbarHostState()
GroupSubscriptionSnackbarHost(
snackbarHostState = snackbarHostState,
)
}
@Composable
fun ScreenWithBottomSheet() {
val snackbarHostState = SnackbarHostState()
...
OneTapBottomSheet(
...
subscribeToGroupId = "12345",
onSuccessSubscribingToGroup = { /* Успешная подписка на сообщество */ },
onFailSubscribingToGroup = { /* Ошибка во время подписки на сообщество */ },
groupSubscriptionSnackbarHostState = snackbarHostState,
groupSubscriptionStyle = GroupSubscriptionStyle.Light(),
)
}
Параметр | Описание |
---|---|
GroupSubscriptionSnackbarHost | Отображение Snackbar о статусе подписки |
subscribeToGroupId | ID сообщества. Его можно увидеть на странице сообщества в ВКонтакте в разделе Подробная информация |
onSuccessSubscribingToGroup | Callback-метод, который вызывается при успешной подписке на сообщество |
onFailSubscribingToGroup | Callback-метод, который вызывается при неуспешной подписке на сообщество |
groupSubscriptionStyle | Стилизация окна подписки на сообщество |
@Composable
fun ScreenWithBottomSheet() {
val snackbarHostState = SnackbarHostState()
GroupSubscriptionSnackbarHost(
snackbarHostState = snackbarHostState,
)
}
@Composable
fun ScreenWithBottomSheet() {
val snackbarHostState = SnackbarHostState()
...
OAuthListWidget(
...
subscribeToGroupId = "12345",
onSuccessSubscribingToGroup = { /* Успешная подписка на сообщество */ },
onFailSubscribingToGroup = { /* Ошибка во время подписки на сообщество */ },
groupSubscriptionSnackbarHostState = snackbarHostState,
groupSubscriptionStyle = GroupSubscriptionStyle.Light(),
)
}
Атрибут | Описание |
---|---|
vkid_groupId | ID сообщества. Его можно увидеть на странице сообщества в ВКонтакте в разделе Подробная информация |
vkid_groupSubscriptionStyle | Стилизация окна подписки на сообщество |
property | Описание |
---|---|
snackbarHost | Отображение Snackbar о статусе подписки |
groupId | ID сообщества. Его можно увидеть на странице сообщества в ВКонтакте в разделе Подробная информация |
accessTokenProvider | Использование внешнего Access token. |
style | Стилизация окна подписки на сообщество |
Метод | Описание |
---|---|
show() | Отображает окно подписки |
hide() | Скрывает окно подписки |
setCallbacks() | Callback-метод, который вызывается в зависимости от переданных параметров:
|
dependencies {
implementation("com.vk.id:group-subscription-xml:${sdkVersion— указывается последняя версия SDK, смотрите номер версии в начале страницы}")
}
<com.vk.id.group.subscription.xml.GroupSubscriptionSnackbarHost
android:id="@+id/group_subscription_snackbar_host"
android:layout_width="match_parent"
android:layout_height="match_parent" />
findViewById<GroupSubscriptionSheet>(R.id.group_subscription).snackbarHost
= findViewById<GroupSubscriptionSnackbarHost>(R.id.group_subscription_snackbar_host)
<com.vk.id.group.subscription.xml.GroupSubscriptionSheet
android:id="@+id/group_subscription"
android:layout_width="0dp"
android:layout_height="0dp"
app:vkid_groupId="1" />
findViewById<GroupSubscriptionSheet>(R.id.group_subscription).apply {
setCallbacks(
onSuccess = { /* Успешная подписка на сообщество */ },
onFail = { /* Ошибка во время подписки на сообщество */ },
)
groupId = "12345"
}
findViewById<GroupSubscriptionSheet>(R.id.group_subscription).show()
val view = findViewById<OneTap>(R.id.onetap)
view.scopes = setOf("groups")
<com.vk.id.onetap.xml.OneTap
...
app:vkid_onetapScopes="groups"
/>
findViewById<GroupSubscriptionSheet>(R.id.group_subscription).accessTokenProvider = { MyTokenStorage.getAccessToken() }
fun onCreate(/* ... */) {
findViewById<GroupSubscriptionSheet>(R.id.group_subscription).style = GroupSubscriptionStyle.Light(
cornersStyle = GroupSubscriptionSheetCornersStyle.Custom(2f),
buttonsCornersStyle = GroupSubscriptionButtonsCornersStyle.Default,
sizeStyle = GroupSubscriptionButtonsSizeStyle.SMALL_32,
)
}
Значение | писание |
---|---|
light | Светлая тема |
dark | Тёмная тема |
system | Системная тема, меняется между light и dark в зависимости от системных настроек оформления в телефоне |
<com.vk.id.group.subscription.xml.GroupSubscriptionSnackbarHost
android:id="@+id/group_subscription_snackbar_host"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:vkid_groupSubscriptionButtonCorners="0dp"
app:vkid_groupSubscriptionButtonSize="small32"
app:vkid_groupSubscriptionCorners="1dp"
app:vkid_groupSubscriptionStyle="system" />
Атрибут | Описание |
---|---|
vkid_groupId | ID сообщества. Его можно увидеть на странице сообщества в ВКонтакте в разделе Подробная информация |
vkid_groupSubscriptionStyle | Стилизация окна подписки на сообщество |
property | Описание |
---|---|
snackbarHost | Отображение Snackbar о статусе подписки |
groupId | ID сообщества. Его можно увидеть на странице сообщества в ВКонтакте в разделе Подробная информация |
style | Стилизация окна подписки на сообщество |
<com.vk.id.group.subscription.xml.GroupSubscriptionSnackbarHost
android:id="@+id/group_subscription_snackbar_host"
android:layout_width="match_parent"
android:layout_height="match_parent" />
findViewById<OneTap>(R.id.one_tap).snackbarHost
= findViewById<GroupSubscriptionSnackbarHost>(R.id.group_subscription_snackbar_host)
<com.vk.id.onetap.xml.OneTap
android:id="@+id/one_tap"
app:vkid_groupId="12345" />
findViewById<OneTap>(R.id.one_tap).apply {
setGroupSubscriptionCallbacks(
onSuccess = { /* Успешная подписка на сообщество */ },
onFail = { /* Ошибка во время подписки на сообщество */ },
)
groupId = "12345"
}
Атрибут | Описание |
---|---|
vkid_groupId | ID сообщества. Его можно увидеть на странице сообщества в ВКонтакте в разделе Подробная информация |
vkid_groupSubscriptionStyle | Стилизация окна подписки на сообщество |
property | Описание |
---|---|
snackbarHost | Отображение Snackbar о статусе подписки |
groupId | ID сообщества. Его можно увидеть на странице сообщества в ВКонтакте в разделе Подробная информация |
style | Стилизация окна подписки на сообщество |
<com.vk.id.group.subscription.xml.GroupSubscriptionSnackbarHost
android:id="@+id/group_subscription_snackbar_host"
android:layout_width="match_parent"
android:layout_height="match_parent" />
findViewById<OneTapBottomSheet>(R.id.one_tap).snackbarHost
= findViewById<GroupSubscriptionSnackbarHost>(R.id.group_subscription_snackbar_host)
<com.vk.id.onetap.xml.OneTapBottomSheet
android:id="@+id/one_tap_bottom_sheet"
app:vkid_groupId="12345" />
findViewById<OneTapBottomSheet>(R.id.one_tap_bottom_sheet).apply {
setGroupSubscriptionCallbacks(
onSuccess = { /* Успешная подписка на сообщество */ },
onFail = { /* Ошибка во время подписки на сообщество */ },
)
groupId = "12345"
}
Атрибут | Описание |
---|---|
vkid_groupId | ID сообщества. Его можно увидеть на странице сообщества в ВКонтакте в разделе Подробная информация |
vkid_groupSubscriptionStyle | Стилизация окна подписки на сообщество |
property | Описание |
---|---|
snackbarHost | Отображение Snackbar о статусе подписки |
groupId | ID сообщества. Его можно увидеть на странице сообщества в ВКонтакте в разделе Подробная информация |
style | Стилизация окна подписки на сообщество |
<com.vk.id.group.subscription.xml.GroupSubscriptionSnackbarHost
android:id="@+id/group_subscription_snackbar_host"
android:layout_width="match_parent"
android:layout_height="match_parent" />
findViewById<OAuthListWidget>(R.id.oauth_list_widget).snackbarHost
= findViewById<GroupSubscriptionSnackbarHost>(R.id.group_subscription_snackbar_host)
<com.vk.id.onetap.xml.OAuthListWidget
android:id="@+id/no_multibranding_one_tap"
app:vkid_groupId="12345" />
findViewById<OAuthListWidget>(R.id.oauth_list_widget).apply {
setGroupSubscriptionCallbacks(
onSuccess = { /* Успешная подписка на сообщество */ },
onFail = { /* Ошибка во время подписки на сообщество */ },
)
groupId = "12345"
}