דילוג לתוכן
0
  • דף הבית
  • חוקי הפורום
  • מדריכים
  • פוסטים אחרונים
  • לא נפתר
  • תגיות
  • פופולרי
  • משתמשים
  • תרומות לאוצריא
  • צור קשר
  • דף הבית
  • חוקי הפורום
  • מדריכים
  • פוסטים אחרונים
  • לא נפתר
  • תגיות
  • פופולרי
  • משתמשים
  • תרומות לאוצריא
  • צור קשר
עיצובים
  • בהיר
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • כהה
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
לוגו אתר

פורום אוצריא

אוצריא - דף הבית
|
קח שותפות בהוספת ספרים
|
תרום לאוצריא
  1. דף הבית
  2. מדריכים ותוכנות עזר לאוצריא
  3. תוספים לאוצריא - דיונים
  4. בעיה | הכנסת תוסף לחנות

בעיה | הכנסת תוסף לחנות

מתוזמן נעוץ נעול הועבר תוספים לאוצריא - דיונים
תוספיםחנותsqlitejsonwebview
13 פוסטים 3 כותבים 208 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
    תגובה
    • תגובה כנושא
    התחברו כדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • ה
      ה
      הלומד
      כתב ב נערך לאחרונה על ידי הלומד
      #1

      @פלמנמוני @otzaria-bot
      שאלה מקלאוד:

      @otzaria-bot פעם כתב לנו:
      "אין כרגע benchmark, טלמטריה או התחייבות לזמן ממוצע של storage.set, ולכן אי אפשר לתת מספר אמין במילישניות. הזמן תלוי במערכת ההפעלה, בדיסק, בגודל הערך ובקריאה הראשונה שפותחת את מסד הנתונים.
      השמירה עוברת דרך גשר ה־WebView, קידוד JSON, ואז INSERT OR REPLACE למסד SQLite במצב WAL. לכן אובייקט גדול יהיה איטי יותר: הוא מועבר ומקודד בשלמותו ונכתב מחדש כולו. לא מוגדרת כרגע מגבלת גודל ייעודית ל־storage, אבל לא מומלץ להשתמש בו לנתונים גדולים מאוד. המימוש נמצא ב־plugin_bridge_adapter.dart (שורה 1876) וב־plugin_system_database.dart (שורה 301).
      אין כרגע API מסוג storage.setMany או batch. האפשרויות הן:

      • לבצע מספר קריאות נפרדות — הן אינן אטומיות וכל אחת נספרת במגבלת קצב הקריאות.
      • לשמור אובייקט אחד המכיל כמה ערכים תחת מפתח יחיד. זו קריאה אחת וכתיבה אחת, למשל:
      await Otzaria.call('storage.set', {
        key: 'state',
        value: {
          settings,
          progress,
          cacheMetadata
        }
      });
      
      

      אין גם אירוע Otzaria ייעודי ואמין כמו beforeunload לפני יציאת האפליקציה או סגירת התוסף. קיימים plugin.suspended ו־plugin.resumed, אבל plugin.suspended נורה כאשר עוזבים את לשונית התוסף, לא כאירוע shutdown. בסגירת האפליקציה ה־WebViews מפונים ישירות דרך plugin_runtime_dispatcher.dart (שורה 218).
      ייתכן שאירוע DOM כמו beforeunload יופעל בחלק מהתרחישים, אבל זו אינה הבטחה של ה־SDK ואי אפשר לסמוך עליו להשלמת קריאת RPC אסינכרונית. ההמלצה היא לשמור בזמן שהנתונים משתנים, עם debounce, ולא להמתין ליציאה. אפשר לבצע שמירה נוספת ב־plugin.suspended כ־best effort בלבד."

      השתמשנו בplugin.suspended ו־plugin.resumed בדרך הזו:

      Otzaria.on('plugin.suspended', callback);
      Otzaria.on('plugin.resumed', callback);
      

      וקבלנו את השגיאה הזו:
      88bed886-0858-457e-b6a9-9d8416319b32-image.jpeg

      איך נרשמים נכון לplugin.suspended ו־plugin.resumed?

      מצורפים הקבצים שבהם כתוב שיש רישום לevent
      access-lock.js
      reminders.js
      storage-io.js

      תגובה 1 תגובה אחרונה
      0
      • י. פל.י
        י. פל.י
        י. פל.
        כתב ב נערך לאחרונה על ידי י. פל.
        #2

        @otzaria-bot
        תענה בבקשה, קרא את הקוד הרלוונטי.
        (אם הוא לא יענה, שלח לי צ'אט עוד כמה שעות).

        ה תגובה 1 תגובה אחרונה
        1
        • י. פל.י י. פל.

          @otzaria-bot
          תענה בבקשה, קרא את הקוד הרלוונטי.
          (אם הוא לא יענה, שלח לי צ'אט עוד כמה שעות).

          ה
          ה
          הלומד
          כתב ב נערך לאחרונה על ידי
          #3

          @י.-פל.

          לפי השעה כנראה מחר, אין בעיה

          תגובה 1 תגובה אחרונה
          1
          • י. פל.י
            י. פל.י
            י. פל.
            כתב ב נערך לאחרונה על ידי
            #4

            הוא לא עונה, כי נגמרו הטוקנים...

            תגובה 1 תגובה אחרונה
            0
            • י. פל.י
              י. פל.י
              י. פל.
              כתב ב נערך לאחרונה על ידי
              #5

              @otzaria-bot
              קרא את ההודעה הראשונה בשרשור, והגב.

              תגובה 1 תגובה אחרונה
              0
              • Otzaria-BotO
                Otzaria-BotO
                Otzaria-Bot
                כתב ב נערך לאחרונה על ידי
                #6

                @הלומד — הרישום שלכם נכון. השגיאה שקיבלתם אינה שגיאת ריצה אלא ולידציה של החנות בהעלאה.

                איך זה עובד בפועל

                plugin.suspended ו-plugin.resumed נשלחים ישירות כ-CustomEvent על window מתוך plugin_runtime_dispatcher.dart (השהיה) ו-שורה 168 (חזרה), וה-dispatch עצמו בשורה 193. מצד ה-SDK, Otzaria.on(event, cb) הוא בסך הכל עטיפה ל-window.addEventListener (plugin_tab_page.dart שורה 712) — בלי בדיקת שם אירוע ובלי בדיקת הרשאה.

                מכאן שני דברים:

                1. Otzaria.on('plugin.suspended', cb) היא הצורה הנכונה, והיא עובדת.
                2. אין הרשאת events.subscribe:plugin.suspended ואין צורך בה — אירועי lifecycle אינם עוברים דרך בדיקת ההרשאות של dispatchEvent. אל תוסיפו אותה ל-manifest, היא תיפסל כהרשאה לא חוקית.

                למה החנות בכל זאת חסמה

                הוולידטור של החנות בונה את רשימת האירועים המוכרים מתוך docs/plugin-sdk/API_REFERENCE.md — הוא שולף שמות מדוגמאות Otzaria.on('...') ומהרשאות events.subscribe:X שמופיעות שם. plugin.suspended ו-plugin.resumed מתועדים כרגע רק ב-otzaria_plugin.d.ts (שורות 588-590) ולא ב-API_REFERENCE, ולכן הם יוצאים "לא מוכרים". ובהעלאה לחנות כל warning חוסם, לא רק error. זהו פספוס בתיעוד/ולידטור, לא בקוד שלכם.

                עקיפה שעובדת עכשיו

                הסורק מחפש רק Otzaria.on( / Otzaria.off(. לכן:

                window.addEventListener('plugin.suspended', () => stopReminderInterval());
                window.addEventListener('plugin.resumed', () => startReminderInterval());
                

                זהה לחלוטין מבחינת התנהגות (זה מה ש-Otzaria.on עושה מתחת), ועובר את הולידציה. שימו לב שכאן ה-callback מקבל את אובייקט ה-Event, כך שאם תצטרכו payload באירוע אחר — e.detail. ב-lifecycle ה-detail הוא null בכל מקרה.

                ובהזדמנות זו: plugin.suspended נורה גם ביציאה מלשונית התוסף, לא רק בסגירת האפליקציה, ולכן הוא כן שימושי כ-flush נקודתי — אבל אין להסתמך עליו כאירוע shutdown.

                התיקון האמיתי הוא להוסיף את שני האירועים ל-API_REFERENCE.md (ולרשימת ה-fallback בוולידטור). @י.-פל.

                כדי שזה לא ייעלם — פתחו issue: https://github.com/Otzaria/otzaria/issues

                י. פל.י תגובה 1 תגובה אחרונה
                0
                • Otzaria-BotO Otzaria-Bot

                  @הלומד — הרישום שלכם נכון. השגיאה שקיבלתם אינה שגיאת ריצה אלא ולידציה של החנות בהעלאה.

                  איך זה עובד בפועל

                  plugin.suspended ו-plugin.resumed נשלחים ישירות כ-CustomEvent על window מתוך plugin_runtime_dispatcher.dart (השהיה) ו-שורה 168 (חזרה), וה-dispatch עצמו בשורה 193. מצד ה-SDK, Otzaria.on(event, cb) הוא בסך הכל עטיפה ל-window.addEventListener (plugin_tab_page.dart שורה 712) — בלי בדיקת שם אירוע ובלי בדיקת הרשאה.

                  מכאן שני דברים:

                  1. Otzaria.on('plugin.suspended', cb) היא הצורה הנכונה, והיא עובדת.
                  2. אין הרשאת events.subscribe:plugin.suspended ואין צורך בה — אירועי lifecycle אינם עוברים דרך בדיקת ההרשאות של dispatchEvent. אל תוסיפו אותה ל-manifest, היא תיפסל כהרשאה לא חוקית.

                  למה החנות בכל זאת חסמה

                  הוולידטור של החנות בונה את רשימת האירועים המוכרים מתוך docs/plugin-sdk/API_REFERENCE.md — הוא שולף שמות מדוגמאות Otzaria.on('...') ומהרשאות events.subscribe:X שמופיעות שם. plugin.suspended ו-plugin.resumed מתועדים כרגע רק ב-otzaria_plugin.d.ts (שורות 588-590) ולא ב-API_REFERENCE, ולכן הם יוצאים "לא מוכרים". ובהעלאה לחנות כל warning חוסם, לא רק error. זהו פספוס בתיעוד/ולידטור, לא בקוד שלכם.

                  עקיפה שעובדת עכשיו

                  הסורק מחפש רק Otzaria.on( / Otzaria.off(. לכן:

                  window.addEventListener('plugin.suspended', () => stopReminderInterval());
                  window.addEventListener('plugin.resumed', () => startReminderInterval());
                  

                  זהה לחלוטין מבחינת התנהגות (זה מה ש-Otzaria.on עושה מתחת), ועובר את הולידציה. שימו לב שכאן ה-callback מקבל את אובייקט ה-Event, כך שאם תצטרכו payload באירוע אחר — e.detail. ב-lifecycle ה-detail הוא null בכל מקרה.

                  ובהזדמנות זו: plugin.suspended נורה גם ביציאה מלשונית התוסף, לא רק בסגירת האפליקציה, ולכן הוא כן שימושי כ-flush נקודתי — אבל אין להסתמך עליו כאירוע shutdown.

                  התיקון האמיתי הוא להוסיף את שני האירועים ל-API_REFERENCE.md (ולרשימת ה-fallback בוולידטור). @י.-פל.

                  כדי שזה לא ייעלם — פתחו issue: https://github.com/Otzaria/otzaria/issues

                  י. פל.י
                  י. פל.י
                  י. פל.
                  כתב ב נערך לאחרונה על ידי
                  #7

                  @Otzaria-Bot כתב:

                  זהו פספוס בתיעוד/ולידטור, לא בקוד שלכם.

                  @פלמנמוני

                  תגובה 1 תגובה אחרונה
                  0
                  • ה
                    ה
                    הלומד
                    כתב ב נערך לאחרונה על ידי
                    #8

                    @י.-פל. כתב:

                    @פלמנמוני

                    לחכות לו או לעשות את הפתרון הזמני שהוא אמר?

                    הפתרון שהם הציעו: במקום Otzaria.on(...) לכתוב window.addEventListener(...) — זה בדיוק אותו דבר מאחורי הקלעים, רק שהולידטור לא סורק את זה.

                    תוצאה: הקוד עובד זהה, השגיאה בחנות נעלמת.

                    תגובה 1 תגובה אחרונה
                    0
                    • ה
                      ה
                      הלומד
                      כתב ב נערך לאחרונה על ידי
                      #9

                      ראיתי שזה מתעכב אז שמתי את "הפלסטר" שהביא לי הרובוט
                      @י.-פל. @יאיר-דניאל לא יודע מי המנהל שרשום שם שצריך לאשר אני אשמח שזה יקרה

                      @פלמנמוני כדאי בכל מקרה לסדר את זה שזה לא יקרה גם לבאים אחרי

                      תגובה 1 תגובה אחרונה
                      0
                      • י. פל.י
                        י. פל.י
                        י. פל.
                        כתב ב נערך לאחרונה על ידי
                        #10

                        @הלומד
                        תזכר אותי עוד כמה שעות - א׳ החברים כאן תרם לי מנוי קודקס מורחב (עולה 100$!!!), ואני מתכנן שיפוץ לאתר, לטקסטים ולמהירות הטעינה, על הדרך אתקן גם את זה בע״ה.
                        אם למישהו יש בעיות נוספות עם האתר (למשל - דף התרומות לא עובד!!!!), אנא פתח שרשור, וכתוב בו את כל הבעיות - אשמח לעבוד בצורה מרוכזת, גם ככה אני על 3-4 repo's במקביל...

                        ה 2 תגובות תגובה אחרונה
                        1
                        • י. פל.י י. פל.

                          @הלומד
                          תזכר אותי עוד כמה שעות - א׳ החברים כאן תרם לי מנוי קודקס מורחב (עולה 100$!!!), ואני מתכנן שיפוץ לאתר, לטקסטים ולמהירות הטעינה, על הדרך אתקן גם את זה בע״ה.
                          אם למישהו יש בעיות נוספות עם האתר (למשל - דף התרומות לא עובד!!!!), אנא פתח שרשור, וכתוב בו את כל הבעיות - אשמח לעבוד בצורה מרוכזת, גם ככה אני על 3-4 repo's במקביל...

                          ה
                          ה
                          הלומד
                          כתב ב נערך לאחרונה על ידי
                          #11

                          @י.-פל. כתב:

                          תזכר אותי עוד כמה שעות

                          בלי נדר אני מתחבר חזרה רק ב10 בערב בערך

                          תגובה 1 תגובה אחרונה
                          0
                          • י. פל.י
                            י. פל.י
                            י. פל.
                            כתב ב נערך לאחרונה על ידי
                            #12

                            בטיפול.

                            תגובה 1 תגובה אחרונה
                            0
                            • י. פל.י י. פל.

                              @הלומד
                              תזכר אותי עוד כמה שעות - א׳ החברים כאן תרם לי מנוי קודקס מורחב (עולה 100$!!!), ואני מתכנן שיפוץ לאתר, לטקסטים ולמהירות הטעינה, על הדרך אתקן גם את זה בע״ה.
                              אם למישהו יש בעיות נוספות עם האתר (למשל - דף התרומות לא עובד!!!!), אנא פתח שרשור, וכתוב בו את כל הבעיות - אשמח לעבוד בצורה מרוכזת, גם ככה אני על 3-4 repo's במקביל...

                              ה
                              ה
                              הלומד
                              כתב ב נערך לאחרונה על ידי
                              #13

                              @י.-פל. כתב:

                              תזכר אותי עוד כמה שעות

                              תזכור

                              תגובה 1 תגובה אחרונה
                              0

                              שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

                              נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

                              בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

                              הרשמה התחברות

                              • התחברות

                              • אין לך חשבון עדיין? הרשמה

                              • התחברו או הירשמו כדי לחפש.
                              • פוסט ראשון
                                פוסט אחרון