FastComments.com

FastComments Android Library


Dit is de officiële Android-bibliotheek voor FastComments.

FastComments commentaarwidgets voor Android

Repository

Bekijk op GitHub


Functies Internal Link


  • 🔄 Live reageren met realtime updates
  • 📱 Native Android UI-componenten
  • 🧵 Geneste discussies met reacties
  • 👤 Veilige SSO-authenticatie
  • 👍 Stemsysteem met aanpasbare stijlen
  • 🔔 Gebruikersmeldingen en aanwezigheid
  • 🔍 Mogelijkheden voor moderatie van opmerkingen
  • 📱 Integratie met sociale feeds
  • ♾️ Oneindige scroll-paginering
  • 🎨 Uitgebreide themamogelijkheden

Vereisten Internal Link

  • Android SDK 26+ (Android 8.0 Oreo of nieuwer)
  • Java 8+

Installatie Internal Link

Voeg de FastComments SDK toe aan het build.gradle.kts-bestand van uw app:

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

Zorg ervoor dat u de Repsy-repository in het settings.gradle.kts-bestand van uw project hebt:

dependencyResolutionManagement {
    repositories {
        maven {
            url = uri("https://repo.repsy.io/mvn/winrid/fastcomments")
        }
        // other repositories...
    }
}

Basisgebruik Internal Link

1. Voeg FastCommentsView toe aan je layout

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

2. Initialiseer en configureer de SDK

// Configureer de SDK
val config = CommentWidgetConfig(
    "your-tenant-id", 
    "page-url-id", 
    "Page Title", 
    "yourdomain.com", 
    "Site Name"
)

// Aanvullende configuratieopties
config.voteStyle = VoteStyle.UpDown // of VoteStyle.Heart
config.enableInfiniteScrolling = true
config.hasDarkBackground = true // voor ondersteuning van donkere modus

// Initialiseer de SDK
val sdk = FastCommentsSDK(config)

// Zoek de commentsweergave in je layout
val commentsView = findViewById<FastCommentsView>(R.id.commentsView)

// Stel de SDK-instantie in voor de view
commentsView.setSDK(sdk)

// Laad reacties
commentsView.load()

Beveiligde SSO-authenticatie Internal Link

Implementeer veilige authenticatie voor uw gebruikers:

// Maak gebruikersgegevens aan (bij voorkeur op uw server)
val userData = SecureSSOUserData(
    "user-id",
    "user@example.com",
    "User Name",
    "https://path-to-avatar.jpg"
)

// Genereer SSO-token (moet aan de serverzijde gebeuren!)
val sso = FastCommentsSSO.createSecure("YOUR_API_KEY", userData)
val token = sso.prepareToSend()

// Voeg toe aan config
config.sso = token

Feed-integratie Internal Link

Toon een feed in sociale-mediastijl met reacties:

// Configureer de SDK
CommentWidgetConfig config = new CommentWidgetConfig();
config.tenantId = "your-tenant-id";
config.urlId = "page-url-id";

// Initialiseer de Feed SDK
FastCommentsFeedSDK feedSDK = new FastCommentsFeedSDK(config);

// Stel de feedweergave in
FastCommentsFeedView feedView = findViewById(R.id.feedView);
feedView.setSDK(feedSDK);

// Stel de listener voor interacties in
feedView.setFeedViewInteractionListener(new FastCommentsFeedView.OnFeedViewInteractionListener() {
    @Override
    public void onFeedLoaded(List<FeedPost> posts) {
        // Feed succesvol geladen
    }

    @Override
    public void onFeedError(String errorMessage) {
        // Fouten afhandelen
    }

    @Override
    public void onPostSelected(FeedPost post) {
        // Gebruiker heeft een bericht geselecteerd
    }

    @Override
    public void onCommentsRequested(FeedPost post) {
        // Toon reacties voor het bericht
        CommentsDialog dialog = new CommentsDialog(context, post, feedSDK);
        dialog.show();
    }
});

// Laad de feed
feedView.load();

Livechat-integratie Internal Link

Voeg een realtime chatinterface toe aan je app:

// Voeg LiveChatView toe aan je layout XML
// <com.fastcomments.sdk.LiveChatView
//     android:id="@+id/liveChatView"
//     android:layout_width="match_parent"
//     android:layout_height="match_parent" />

// Create a configuration for the SDK
val config = CommentWidgetConfig().apply {
    tenantId = "your-tenant-id"
    urlId = "chat-room-identifier" 
    pageTitle = "Chat Room Name"
}
LiveChatView.setupLiveChatConfig(config)

// Optioneel: Voeg gebruikersauthenticatie toe
val userData = SimpleSSOUserData(
    "User Name",
    "user@example.com",
    "https://path-to-avatar.jpg"
)
val sso = FastCommentsSSO(userData)
config.sso = sso.prepareToSend()

// Initialiseer de SDK
val sdk = FastCommentsSDK().configure(config)

// Stel de live chat view in
val liveChatView = findViewById<LiveChatView>(R.id.liveChatView)
liveChatView.setSDK(sdk)
liveChatView.load()

// Vergeet niet de afhandeling van de levenscyclus
override fun onResume() {
    super.onResume()
    sdk.refreshLiveEvents()
}

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

Voorbeeldprojecten Internal Link


Bekijk deze demo-implementaties:


Configuratieopties Internal Link

De SDK biedt veel configuratieopties via de CommentWidgetConfig-klasse:

Optie Beschrijving
tenantId Uw FastComments-account-ID
urlId ID die de huidige pagina vertegenwoordigt
sso SSO-token voor authenticatie
allowAnon Sta anoniem commentaar toe
voteStyle Stemstijl: UpDown of Heart
hideAvatars Verberg gebruikersavatars
hasDarkBackground Geeft donkere modus aan
customCSS Aangepaste CSS-stijlen
enableInfiniteScrolling Schakel paginering met oneindig scrollen in
readonly Schakel reageren uit maar toon reacties
disableVoting Schakel stemfunctionaliteit uit
disableLiveCommenting Schakel realtime-updates uit

Uitgebreide thema-aanpassing Internal Link

Alle knoppen en UI-elementen in de FastComments SDK zijn te thematiseren. Gebruik de FastCommentsTheme.Builder voor volledige controle over de huisstijl van uw app.

Thematisering via code (Aanbevolen)

val theme = FastCommentsTheme.Builder()
    // Actieknoppen: verzenden, stemmen, menu, like/delen-knoppen
    .setActionButtonColor(Color.parseColor("#FF1976D2"))

    // Antwoordknoppen: knoppen voor reageren op opmerkingen  
    .setReplyButtonColor(Color.parseColor("#FF4CAF50"))

    // Wisselknoppen: Knoppen om reacties te tonen/verbergen
    .setToggleRepliesButtonColor(Color.parseColor("#FFFF5722"))

    // Laad meer-knoppen: paginatieknoppen
    .setLoadMoreButtonTextColor(Color.parseColor("#FF9C27B0"))

    .setPrimaryColor(Color.parseColor("#FF6200EE"))
    .setLinkColor(Color.parseColor("#FF1976D2"))
    .setDialogHeaderBackgroundColor(Color.parseColor("#FF333333"))
    .build()

// Pas het thema toe
sdk.setTheme(theme)

Snelle kleuraanpassing

Overschrijf kleurbronnen in uw colors.xml voor eenvoudige aanpassing van de huisstijl:

<!-- In het res/values/colors.xml van uw app -->
<resources>
    <!-- Wijzig alle primaire UI-elementen -->
    <color name="primary">#FF1976D2</color>

    <!-- Of pas specifieke knopsoorten aan -->
    <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>

Knoppen die door het thema worden gedekt

Elke knop in de SDK ondersteunt thematisering:

  • Verzendknoppen, stemknoppen, menuknoppen, antwoordknoppen
  • Knoppen voor tonen/verbergen van reacties, 'laad meer'-knoppen
  • Actieknoppen in de feed (vind-ik-leuk, reageren, delen)
  • Dialoogknoppen (verzenden, annuleren, opslaan)
  • Dynamische taakknoppen in feedposts

Voor gedetailleerde themadocumentatie, zie THEMING.md.

Geheugenbeheer Internal Link

Geheugenlekken voorkomen

Om geheugenlekken te voorkomen bij het gebruik van FastComments-weergaven in activiteiten of fragmenten, moet je altijd cleanup() aanroepen wanneer de view niet langer nodig is:

In activiteiten:

@Override
protected void onDestroy() {
    super.onDestroy();
    // Ruim FastComments-weergaven op om geheugenlekken te voorkomen
    if (feedView != null) {
        feedView.cleanup();
    }
    if (commentsView != null) {
        commentsView.cleanup();
    }
}

In fragmenten:

@Override
public void onDestroyView() {
    super.onDestroyView();
    // Ruim FastComments-weergaven op wanneer de view van het fragment wordt vernietigd
    if (feedView != null) {
        feedView.cleanup();
        feedView = null;
    }
}

@Override
public void onDestroy() {
    super.onDestroy();
    // Extra opruiming wanneer het fragment wordt vernietigd
    if (feedSDK != null) {
        feedSDK.cleanup();
        feedSDK = null;
    }
}

Bij het wisselen van fragmenten:

// Voordat je een fragment vervangt of verwijdert dat FastComments-weergaven bevat
Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.container);
if (currentFragment instanceof YourFragmentWithFeedView) {
    ((YourFragmentWithFeedView) currentFragment).cleanupFeedView();
}

// Then proceed with fragment transaction
getSupportFragmentManager().beginTransaction()
    .replace(R.id.container, newFragment)
    .commit();

Belangrijk: Roep altijd de cleanup()-methoden aan om geheugenlekken te voorkomen, vooral wanneer:

  • Activiteiten worden vernietigd
  • Fragment-views worden vernietigd
  • Er wordt gewisseld tussen fragmenten
  • Je navigeert weg van schermen met FastComments-componenten

Hulp nodig?

Als je problemen ondervindt of vragen hebt over de Android-bibliotheek, doe dan het volgende:

Bijdragen

Bijdragen zijn welkom! Bezoek de GitHub-repository voor richtlijnen voor bijdragen.