# Сторис в Android

Поддержка

Stories в Android поддерживаются с версии SDK 1.6.0

# Инициализация через XML

Для вставки блока сторис на определенный шаблон (layout) приложения, добавьте следующий код в ваш XML-файл разметки:

<com.personalization.stories.views.StoriesView
    android:id="@+id/stories_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:code="STORY BLOCK CODE" />

Где вместо STORY BLOCK CODE укажите уникальный идентификатор блока сторис.

Далее, в вашем Activity достаточно найти этот элемент и инициализировать его через SDK:

// Код для JAVA

<com.personalizatio.stories.views.StoriesView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:code="STORY BLOCK CODE" />

StoriesView storiesView = findViewById(R.id.story_view);
<%= config[:android_sdk_package_name] %>.initializeStoriesView(storiesView);
// Код на Kotlin

val storiesView = findViewById<StoriesView>(R.id.stories_view)
sdk.initializeStoriesView(storiesView)

Вместо STORY BLOCK CODE укажите уникальный идентификатор блока сторис.

Вся дальнейшая работа по рендеру блока, обработке нажатий и отображению слайдов выполняется SDK автоматически.

# Опциональное открытие браузера

По умолчанию при нажатии на ссылку в сторис, она будет открыта в барузере. Это поведение можно изменить, задав значение false для параметра needOpeningWebView.

// Пример кода

<com.personalization.stories.views.StoriesView 
  android:id="@+id/stories_view"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  app:code="STORIES_CODE"
  app:need_opening_web_view="false" />

# Программная инициализация

Если вам нужно создать и добавить StoriesView программно (без использования XML), выполните следующие шаги:

  1. Создание экземпляра StoriesView

Внутри вашего Activity создайте новый экземпляр StoriesView, передав в конструктор контекст и идентификатор блока сторис:

// kotlin
val storiesView = StoriesView(this, "STORY BLOCK CODE")
// java
StoriesView storiesView = new StoriesView(this, "STORY BLOCK CODE");
  1. Если StoriesView создается программно, его нужно добавить в нужный контейнер с помощью addView. Например:
// kotlin
findViewById<ViewGroup>(R.id.stories_container).addView(storiesView)
// java
((ViewGroup) findViewById(R.id.stories)).addView(storiesView);
  1. Инициализируйте StoriesView с помощью SDK
// kotlin
sdk.initializeStoriesView(storiesView)
// java
SDK.initializeStoriesView(storiesView);

Пример кода на Kotlin:

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // Программная инициализация блока сторис
        val storiesView = StoriesView(this, "STORY BLOCK CODE")
        
        // Добавляем блок в контейнер, если создаем его программно
        findViewById<ViewGroup>(R.id.stories_container).addView(storiesView)
        
        // Инициализируем StoriesView через SDK
        sdk.initializeStoriesView(storiesView)
    }
}

Пример кода на Java:

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Программная инициализация блока сторис
        StoriesView storiesView = new StoriesView(this, "STORY BLOCK CODE");
        
        // Добавляем блок в контейнер, если создаем его программно
        ((ViewGroup) findViewById(R.id.stories_container)).addView(storiesView);
        
        // Инициализируем StoriesView через SDK
        SDK.initializeStoriesView(storiesView);
    }
}