
Taal 🇳🇱 Nederlands
Documentatie
Aan de slag
Gebruik
Authenticatie
Configuratie
FastComments Android Library
Dit is de officiële Android-bibliotheek voor FastComments.
FastComments commentaarwidgets voor Android
Repository
Functies 
- 🔄 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
Installatie 
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 
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 
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 
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 
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 
Bekijk deze demo-implementaties:
- Basisreacties-voorbeeld
- Beveiligde SSO-implementatie
- Feed-integratievoorbeeld
- Livechat-voorbeeld
- Reactiesdialoog-voorbeeld
Configuratieopties 
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 
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 
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.