FastComments.com

FastComments Android Library


To je uradna Android knjižnica za FastComments.

Pripomočki za komentiranje FastComments za Android

Repozitorij

Oglejte si na GitHubu


Funkcije 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()

Varno SSO preverjanje pristnosti 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()
}

Primeri projektov Internal Link


Oglejte si te demonstracijske implementacije:


Možnosti konfiguracije Internal Link

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

Možnost Opis
tenantId ID vašega FastComments računa
urlId ID, ki predstavlja trenutno stran
sso SSO žeton za preverjanje pristnosti
allowAnon Dovoli anonimno komentiranje
voteStyle Slog glasovanja: UpDown ali Heart
hideAvatars Skrij avatarje uporabnikov
hasDarkBackground Označuje temni način
customCSS Prilagojeni CSS slogi
enableInfiniteScrolling Omogoči neskončno pomikanje
readonly Onemogoči komentiranje, vendar prikaži komentarje
disableVoting Onemogoči funkcionalnost glasovanja
disableLiveCommenting Onemogoč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.