FastComments.com

Додајте коментаре у вашу Android апликацију

Ово је званична Android библиотека за FastComments.

Видгети за коментаре FastComments за Android

Репозиторијум

Погледајте на GitHub


Карактеристике Internal Link


  • 🔄 Коментарисање уживо са ажурирањима у реалном времену
  • 📱 Нативни Android UI елементи
  • 🧵 Дискусије у нитима са одговорима
  • 👤 Безбедна SSO аутентификација
  • 👍 Систем гласања са прилагодљивим стиловима
  • 🔔 Корисничка обавештења и присуство
  • 🔍 Могућности модерирања коментара
  • 📱 Интеграција друштвеног фида
  • ♾️ Бесконачно скроловање са пагинацијом
  • 🎨 Свеобухватно прилагођавање тема

Захтеви Internal Link

  • Android SDK 26+ (Android 8.0 Oreo или новији)
  • Java 8+

Инсталација Internal Link

Додајте FastComments SDK у build.gradle.kts фајл ваше апликације:

dependencies {
    implementation("com.fastcomments:sdk:0.0.1")
}

Проверите да ли имате Repsy репозиторијум у settings.gradle.kts вашег пројекта:

dependencyResolutionManagement {
    repositories {
        maven {
            url = uri("https://repo.repsy.io/mvn/winrid/fastcomments")
        }
        // други репозиторијуми...
    }
}

Основно коришћење Internal Link

1. Додајте FastCommentsView у ваш изглед

<com.fastcomments.sdk.FastCommentsView
    android:id="@+id/commentsView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

2. Иницијализујте и конфигуришите SDK

// Конфигуришите SDK
val config = CommentWidgetConfig(
    "your-tenant-id", 
    "page-url-id", 
    "Page Title", 
    "yourdomain.com", 
    "Site Name"
)

// Додатне опције конфигурације
config.voteStyle = VoteStyle.UpDown // или VoteStyle.Heart
config.enableInfiniteScrolling = true
config.hasDarkBackground = true // за подршку тамне теме

// Иницијализујте SDK
val sdk = FastCommentsSDK(config)

// Пронађите приказ коментара у вашем изгледу
val commentsView = findViewById<FastCommentsView>(R.id.commentsView)

// Поставите инстанцу SDK-а за приказ
commentsView.setSDK(sdk)

// Учитајте коментаре
commentsView.load()

Сигурна SSO аутентификација Internal Link

Имплементирајте безбедну аутентификацију за ваше кориснике:

// Креирајте корисничке податке (по могућности на вашем серверу)
val userData = SecureSSOUserData(
    "user-id",
    "user@example.com",
    "User Name",
    "https://path-to-avatar.jpg"
)

// Генеришите SSO токен (то би требало да се ради на серверу!)
val sso = FastCommentsSSO.createSecure("YOUR_API_KEY", userData)
val token = sso.prepareToSend()

// Додајте у конфигурацију
config.sso = token

Интеграција фида Internal Link

Прикажите фид у стилу друштвених мрежа са коментарима:

// Конфигуришите SDK
CommentWidgetConfig config = new CommentWidgetConfig();
config.tenantId = "your-tenant-id";
config.urlId = "page-url-id";

// Иницијализујте Feed SDK
FastCommentsFeedSDK feedSDK = new FastCommentsFeedSDK(config);

// Подесите приказ фида
FastCommentsFeedView feedView = findViewById(R.id.feedView);
feedView.setSDK(feedSDK);

// Поставите слушача за интеракције
feedView.setFeedViewInteractionListener(new FastCommentsFeedView.OnFeedViewInteractionListener() {
    @Override
    public void onFeedLoaded(List<FeedPost> posts) {
        // Фид је успјешно учитан
    }

    @Override
    public void onFeedError(String errorMessage) {
        // Обрадите грешке
    }

    @Override
    public void onPostSelected(FeedPost post) {
        // Корисник је изабрао пост
    }

    @Override
    public void onCommentsRequested(FeedPost post) {
        // Прикажите коментаре за пост
        CommentsDialog dialog = new CommentsDialog(context, post, feedSDK);
        dialog.show();
    }
});

// Учитајте фид
feedView.load();

Интеграција ћаскања уживо Internal Link

Додајте интерфејс за ћаскање у реалном времену у вашу апликацију:

// Додајте LiveChatView у ваш XML распоред
// <com.fastcomments.sdk.LiveChatView
//     android:id="@+id/liveChatView"
//     android:layout_width="match_parent"
//     android:layout_height="match_parent" />

// Креирајте конфигурацију за SDK
val config = CommentWidgetConfig().apply {
    tenantId = "your-tenant-id"
    urlId = "chat-room-identifier" 
    pageTitle = "Chat Room Name"
}
LiveChatView.setupLiveChatConfig(config)

// Опционо: Додајте аутентификацију корисника
val userData = SimpleSSOUserData(
    "User Name",
    "user@example.com",
    "https://path-to-avatar.jpg"
)
val sso = FastCommentsSSO(userData)
config.sso = sso.prepareToSend()

// Иницијализујте SDK
val sdk = FastCommentsSDK().configure(config)

// Подесите LiveChatView
val liveChatView = findViewById<LiveChatView>(R.id.liveChatView)
liveChatView.setSDK(sdk)
liveChatView.load()

// Не заборавите руковање животним циклусом
override fun onResume() {
    super.onResume()
    sdk.refreshLiveEvents()
}

override fun onDestroy() {
    super.onDestroy()
    sdk.cleanup()
}

Примери пројеката Internal Link


Погледајте ове демо имплементације:


Опције конфигурације Internal Link

SDK pruža mnogo opcija konfiguracije putem klase CommentWidgetConfig:

OptionDescription
tenantIdID vašeg FastComments naloga
urlIdID koji predstavlja trenutnu stranicu
ssoSSO token za autentifikaciju
allowAnonDozvoli anonimno komentarisanje
voteStyleStil glasanja: UpDown ili Heart
hideAvatarsSakrij korisničke avatare
hasDarkBackgroundOznačava tamni režim
customCSSPrilagođeni CSS stilovi
enableInfiniteScrollingOmogući beskonačno skrolovanje
readonlyOnemogući komentarisanje, ali prikaži komentare
disableVotingOnemogući glasanje
disableLiveCommentingOnemogući ažuriranja u realnom vremenu

Свеобухватно прилагођавање тема Internal Link

Сва дугмад и елементи корисничког интерфејса у FastComments SDK-у су прилагодљиви темом. Користите FastCommentsTheme.Builder за потпуну контролу брендирања ваше апликације.

Програмско прилагођавање теме (Препоручено)

val theme = FastCommentsTheme.Builder()
    // Акционa дугмад: Пошаљи, гласај, мени, лајк/пошаљи дугмад
    .setActionButtonColor(Color.parseColor("#FF1976D2"))
    
    // Дугмад за одговор: Дугмад за одговор на коментар  
    .setReplyButtonColor(Color.parseColor("#FF4CAF50"))
    
    // Прекидачка дугмад: Дугмад за приказ/сакривање одговора
    .setToggleRepliesButtonColor(Color.parseColor("#FFFF5722"))
    
    // Дугмад 'Учитај више': Дугмад за пагинацију
    .setLoadMoreButtonTextColor(Color.parseColor("#FF9C27B0"))
    
    .setPrimaryColor(Color.parseColor("#FF6200EE"))
    .setLinkColor(Color.parseColor("#FF1976D2"))
    .setDialogHeaderBackgroundColor(Color.parseColor("#FF333333"))
    .build()

// Примени тему
sdk.setTheme(theme)

Брзо прилагођавање боја

Преопишите ресурсе боја у вашем colors.xml за једноставно брендирање:

<!-- У res/values/colors.xml ваше апликације -->
<resources>
    <!-- Промените све примарне елементе корисничког интерфејса -->
    <color name="primary">#FF1976D2</color>
    
    <!-- Или прилагодите специфичне типове дугмади -->
    <color name="fastcomments_action_button_color">#FF1976D2</color>
    <color name="fastcomments_reply_button_color">#FF4CAF50</color>
    <color name="fastcomments_toggle_replies_button_color">#FFFF5722</color>
    <color name="fastcomments_load_more_button_text_color">#FF9C27B0</color>
</resources>

Обухват тематизованих дугмади

Свако дугме у SDK-у подржава прилагођавање теме:

  • Дугмад за слање, дугмад за гласање, дугмад менија, дугмад за одговор
  • Дугмад за приказ/сакривање одговора, дугмад 'Учитај више'
  • Акциона дугмад у фиду (лајк, коментар, дељење)
  • Дугмад у дијалогу (потврди, откажи, сачувај)
  • Динамичка дугмад задатака у постовима фида

За детаљну документацију о тематизацији, погледајте THEMING.md.

Управљање меморијом Internal Link

Спречавање цурења меморије

Да бисте спречили цурење меморије при коришћењу FastComments погледа у Activity-има или Fragment-има, увек позовите cleanup() када поглед више није потребан:

У Activity-има:

@Override
protected void onDestroy() {
    super.onDestroy();
    // Очистите FastComments погледе да бисте спречили цурење меморије
    if (feedView != null) {
        feedView.cleanup();
    }
    if (commentsView != null) {
        commentsView.cleanup();
    }
}

У Fragment-има:

@Override
public void onDestroyView() {
    super.onDestroyView();
    // Очистите FastComments погледе када се поглед фрагмента уништи
    if (feedView != null) {
        feedView.cleanup();
        feedView = null;
    }
}

@Override
public void onDestroy() {
    super.onDestroy();
    // Додатно чишћење када се фрагмент уништи
    if (feedSDK != null) {
        feedSDK.cleanup();
        feedSDK = null;
    }
}

При мењању фрагмената:

// Пре замене или уклањања фрагмента који садржи FastComments погледе
Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.container);
if (currentFragment instanceof YourFragmentWithFeedView) {
    ((YourFragmentWithFeedView) currentFragment).cleanupFeedView();
}

// Затим наставите са трансакцијом фрагмента
getSupportFragmentManager().beginTransaction()
    .replace(R.id.container, newFragment)
    .commit();

Важно: Увек позивајте cleanup() методе да бисте спречили цурење меморије, посебно када:

  • Activity-ји се уништавају
  • Погледи фрагмената се уништавају
  • Прелазите између фрагмената
  • Напуштате екране који садрже FastComments компоненте

Треба помоћ?

Ако наиђете на било какве проблеме или имате питања у вези са Android Library, молимо вас:

Како допринети

Доприноси су добродошли! Молимо вас посетите GitHub репозиторијум за смернице о доприносу.