FastComments.com

הוסף תגובות לאפליקציית האנדרואיד שלך


זוהי ספריית Android הרשמית של FastComments.

ווידג'טים של תגובות של FastComments עבור Android

מאגר

צפה ב-GitHub


תכונות Internal Link

  • 🔄 תגובות חיות עם עדכונים בזמן אמת
  • 📱 רכיבי ממשק משתמש מקוריים ל-Android
  • 🧵 דיונים משרשרים עם תגובות
  • 👤 אימות 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")
        }
        // other repositories...
    }
}

שימוש בסיסי 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 מספק מגוון אפשרויות תצורה דרך המחלקה CommentWidgetConfig:

אפשרותתיאור
tenantIdמזהה החשבון שלך ב-FastComments
urlIdמזהה המייצג את הדף הנוכחי
ssoאסימון SSO לאימות
allowAnonאפשר פרסום תגובות אנונימיות
voteStyleסגנון הצבעה — UpDown או Heart
hideAvatarsהסתרת אווטרים של משתמשים
hasDarkBackgroundמציין מצב כהה
customCSSסגנונות CSS מותאמים אישית
enableInfiniteScrollingהפעלת גלילה אינסופית
readonlyמניעת פרסום תגובות אך הצגת תגובות קיימות
disableVotingהשבתת פונקציית ההצבעה
disableLiveCommentingהשבתת עדכונים בזמן אמת

התאמה מקיפה של ערכת הנושא Internal Link

כל הכפתורים ואלמנטים בממשק המשתמש בערכת הפיתוח של FastComments ניתנים לעיצוב. השתמש ב- FastCommentsTheme.Builder לשליטה מלאה במיתוג של האפליקציה שלך.

עיצוב תכנותי (מומלץ)

val theme = FastCommentsTheme.Builder()
    // כפתורי פעולה: שליחה, הצבעה, תפריט, כפתורי לייק/שיתוף
    .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)

החלפה מהירה של צבעים

Override color resources in your colors.xml for simple branding:

<!-- בקובץ 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 views ב־Activities או Fragments, תמיד קראו ל־cleanup() כאשר התצוגה כבר לא נדרשת:

ב־Activities:

@Override
protected void onDestroy() {
    super.onDestroy();
    // נקה תצוגות FastComments כדי למנוע דליפות זיכרון
    if (feedView != null) {
        feedView.cleanup();
    }
    if (commentsView != null) {
        commentsView.cleanup();
    }
}

ב־Fragments:

@Override
public void onDestroyView() {
    super.onDestroyView();
    // נקה תצוגות FastComments כאשר תצוגת ה־Fragment נהרסת
    if (feedView != null) {
        feedView.cleanup();
        feedView = null;
    }
}

@Override
public void onDestroy() {
    super.onDestroy();
    // ניקוי נוסף כאשר ה־Fragment נהרס
    if (feedSDK != null) {
        feedSDK.cleanup();
        feedSDK = null;
    }
}

בעת החלפת Fragments:

// לפני החלפה או הסרה של fragment המכיל תצוגות FastComments
Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.container);
if (currentFragment instanceof YourFragmentWithFeedView) {
    ((YourFragmentWithFeedView) currentFragment).cleanupFeedView();
}

// ואז המשיכו בעסקת ה־fragment
getSupportFragmentManager().beginTransaction()
    .replace(R.id.container, newFragment)
    .commit();

חשוב: תמיד קראו לשיטות cleanup() כדי למנוע דליפות זיכרון, במיוחד כאשר:

  • ה־Activities נהרסות
  • תצוגות ה־Fragment נהרסות
  • החלפה בין Fragments
  • ניווט החוצה ממסכים המכילים רכיבי FastComments

זקוקים לעזרה?

אם אתם נתקלים בבעיות או יש לכם שאלות לגבי ספריית Android, אנא:

תרומות

תרומות מתקבלות בברכה! אנא בקרו ב-מאגר GitHub להנחיות לתרומה.