FastComments.com

Dodajte komentarje v vašo Android aplikacijo


To je uradna Android knjižnica za FastComments.

Pripomočki za komentiranje FastComments za Android

Repozitorij

Oglejte si na GitHubu


Značilnosti Internal Link

  • 🔄 Komentiranje v živo z posodobitvami v realnem času
  • 📱 Nativne Android UI komponente
  • 🧵 Razprave v nitih z odgovori
  • 👤 Varna SSO avtentikacija
  • 👍 Sistem glasovanja z nastavljivimi slogi
  • 🔔 Obvestila uporabnikov in prisotnost
  • 🔍 Možnosti moderiranja komentarjev
  • 📱 Integracija družbenega vira
  • ♾️ Neskončno pomikanje za straničenje
  • 🎨 Obsežno prilagajanje teme

Zahteve Internal Link

  • Android SDK 26+ (Android 8.0 Oreo ali novejši)
  • Java 8+

Namestitev Internal Link

Dodajte FastComments SDK v datoteko build.gradle.kts vaše aplikacije:

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

Prepričajte se, da imate repozitorij Repsy v datoteki settings.gradle.kts vašega projekta:

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

Osnovna uporaba Internal Link

1. Dodajte FastCommentsView v vašo postavitev

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

2. Inicializirajte in konfigurirajte SDK

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

// Dodatne možnosti konfiguracije
config.voteStyle = VoteStyle.UpDown // ali VoteStyle.Heart
config.enableInfiniteScrolling = true
config.hasDarkBackground = true // za podporo temnemu načinu

// Inicializirajte SDK
val sdk = FastCommentsSDK(config)

// Poiščite pogled komentarjev v vaši postavitvi
val commentsView = findViewById<FastCommentsView>(R.id.commentsView)

// Nastavite instanco SDK za pogled
commentsView.setSDK(sdk)

// Naložite komentarje
commentsView.load()

Varna SSO avtentikacija Internal Link

Uvedite varno overjanje za vaše uporabnike:

// Ustvarite podatke o uporabniku (najbolje na vašem strežniku)
val userData = SecureSSOUserData(
    "user-id",
    "user@example.com",
    "User Name",
    "https://path-to-avatar.jpg"
)

// Generirajte SSO žeton (to naj bo narejeno na strežniku!)
val sso = FastCommentsSSO.createSecure("YOUR_API_KEY", userData)
val token = sso.prepareToSend()

// Dodajte v config
config.sso = token

Integracija vira Internal Link


Prikaži vir v slogu družbenih omrežij s komentarji:

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

// Inicializiraj Feed SDK
FastCommentsFeedSDK feedSDK = new FastCommentsFeedSDK(config);

// Nastavi pogled vira
FastCommentsFeedView feedView = findViewById(R.id.feedView);
feedView.setSDK(feedSDK);

// Nastavi poslušalca interakcij
feedView.setFeedViewInteractionListener(new FastCommentsFeedView.OnFeedViewInteractionListener() {
    @Override
    public void onFeedLoaded(List<FeedPost> posts) {
        // Vir je bil uspešno naložen
    }

    @Override
    public void onFeedError(String errorMessage) {
        // Obravnavaj napake
    }

    @Override
    public void onPostSelected(FeedPost post) {
        // Uporabnik je izbral objavo
    }

    @Override
    public void onCommentsRequested(FeedPost post) {
        // Prikaži komentarje za objavo
        CommentsDialog dialog = new CommentsDialog(context, post, feedSDK);
        dialog.show();
    }
});

// Naloži vir
feedView.load();

Integracija klepeta v živo Internal Link

Dodajte vmesnik za klepet v realnem času v vašo aplikacijo:

// Dodajte LiveChatView v vašo XML postavitev
// <com.fastcomments.sdk.LiveChatView
//     android:id="@+id/liveChatView"
//     android:layout_width="match_parent"
//     android:layout_height="match_parent" />

// Ustvarite konfiguracijo za SDK
val config = CommentWidgetConfig().apply {
    tenantId = "your-tenant-id"
    urlId = "chat-room-identifier" 
    pageTitle = "Chat Room Name"
}
LiveChatView.setupLiveChatConfig(config)

// Izbirno: dodajte preverjanje pristnosti uporabnika
val userData = SimpleSSOUserData(
    "User Name",
    "user@example.com",
    "https://path-to-avatar.jpg"
)
val sso = FastCommentsSSO(userData)
config.sso = sso.prepareToSend()

// Inicializirajte SDK
val sdk = FastCommentsSDK().configure(config)

// Nastavite pogled za klepet v živo
val liveChatView = findViewById<LiveChatView>(R.id.liveChatView)
liveChatView.setSDK(sdk)
liveChatView.load()

// Ne pozabite na upravljanje življenjskega cikla
override fun onResume() {
    super.onResume()
    sdk.refreshLiveEvents()
}

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

Vzorčni projekti Internal Link


Oglejte si te demonstracijske implementacije:


Možnosti konfiguracije Internal Link

The SDK nudi številne možnosti konfiguracije prek razreda CommentWidgetConfig:

MožnostOpis
tenantIdID vašega FastComments računa
urlIdID, ki predstavlja trenutno stran
ssoSSO žeton za preverjanje pristnosti
allowAnonDovoli anonimno komentiranje
voteStyleSlog glasovanja: UpDown ali Heart
hideAvatarsSkrij avatarje uporabnikov
hasDarkBackgroundOznačuje temni način
customCSSPrilagojeni CSS slogi
enableInfiniteScrollingOmogoči neskončno pomikanje
readonlyOnemogoči komentiranje, vendar prikaži komentarje
disableVotingOnemogoči funkcionalnost glasovanja
disableLiveCommentingOnemogoči posodobitve v realnem času

Celovita prilagoditev teme Internal Link

Vsi gumbi in elementi uporabniškega vmesnika v FastComments SDK so tematsko prilagodljivi. Uporabite FastCommentsTheme.Builder za popoln nadzor nad blagovno znamko vaše aplikacije.

Programska tematska prilagoditev (priporočeno)

val theme = FastCommentsTheme.Builder()
    // Gumbi za dejanja: Pošlji, glasuj, meni, všečkaj/deli
    .setActionButtonColor(Color.parseColor("#FF1976D2"))
    
    // Gumbi za odgovor: Gumbi za odgovor na komentarje  
    .setReplyButtonColor(Color.parseColor("#FF4CAF50"))
    
    // Preklopni gumbi: Gumbi za prikaz/skrij odgovore
    .setToggleRepliesButtonColor(Color.parseColor("#FFFF5722"))
    
    // Gumbi 'Naloži več': Gumbi za paginacijo
    .setLoadMoreButtonTextColor(Color.parseColor("#FF9C27B0"))
    
    .setPrimaryColor(Color.parseColor("#FF6200EE"))
    .setLinkColor(Color.parseColor("#FF1976D2"))
    .setDialogHeaderBackgroundColor(Color.parseColor("#FF333333"))
    .build()

// Uporabi temo
sdk.setTheme(theme)

Hitro prepisovanje barv

Prepišite barvne vire v datoteki colors.xml za enostavno prilagoditev blagovne znamke:

<!-- V datoteki res/values/colors.xml vaše aplikacije -->
<resources>
    <!-- Spremenite vse primarne elemente uporabniškega vmesnika -->
    <color name="primary">#FF1976D2</color>
    
    <!-- Ali prilagodite posebne vrste gumbov -->
    <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>

Pokrivanje tematskih gumbov

Vsak gumb v SDK podpira tematsko prilagajanje:

  • Gumbi za pošiljanje, gumbi za glasovanje, gumbi menija, gumbi za odgovore
  • Gumbi za prikaz/skrij odgovore, gumbi 'naloži več'
  • Gumbi dejanj v feedu (všeč, komentar, deljenje)
  • Gumbi dialogov (pošlji, prekliči, shrani)
  • Dinamični gumbi opravil v objavah v feedu

Za podrobno dokumentacijo o tematskem prilagajanju glejte THEMING.md.

Upravljanje pomnilnika Internal Link

Preprečevanje puščanja pomnilnika

Da preprečite puščanje pomnilnika pri uporabi pogledov FastComments v aktivnostih ali fragmentih, vedno pokličite cleanup(), ko pogled ni več potreben:

V aktivnostih:

@Override
protected void onDestroy() {
    super.onDestroy();
    // Počistite FastComments poglede, da preprečite puščanje pomnilnika
    if (feedView != null) {
        feedView.cleanup();
    }
    if (commentsView != null) {
        commentsView.cleanup();
    }
}

V fragmentih:

@Override
public void onDestroyView() {
    super.onDestroyView();
    // Počistite FastComments poglede, ko je pogled fragmenta uničen
    if (feedView != null) {
        feedView.cleanup();
        feedView = null;
    }
}

@Override
public void onDestroy() {
    super.onDestroy();
    // Dodatno čiščenje, ko je fragment uničen
    if (feedSDK != null) {
        feedSDK.cleanup();
        feedSDK = null;
    }
}

Pri preklapljanju fragmentov:

// Pred zamenjavo ali odstranitvijo fragmenta, ki vsebuje poglede FastComments
Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.container);
if (currentFragment instanceof YourFragmentWithFeedView) {
    ((YourFragmentWithFeedView) currentFragment).cleanupFeedView();
}

// Nato nadaljujte s transakcijo fragmenta
getSupportFragmentManager().beginTransaction()
    .replace(R.id.container, newFragment)
    .commit();

Pomembno: Vedno pokličite metode cleanup(), da preprečite puščanje pomnilnika, še posebej ko:

  • ko so aktivnosti uničene
  • ko so pogledi fragmentov uničeni
  • pri preklapljanju fragmentov
  • ko zapuščate zaslone s komponentami FastComments

Potrebujete pomoč?

Če naletite na kakršne koli težave ali imate vprašanja glede Android knjižnice, prosimo:

Prispevanje

Prispevki so dobrodošli! Prosimo, obiščite repozitorij na GitHubu za smernice o prispevanju.