דפדפנים באפליקציה מאפשרים למשתמשים ליהנות מחוויית גלישה מלאה בלי לצאת מהאפליקציה. ב-Android יש שני ממשקי API עיקריים להטמעת דפדפנים באפליקציה: כרטיסיות מותאמות אישית ו-WebViews. אם יש לכם קישור או מודעה שמובילים לדף אינטרנט, אתם יכולים להשתמש בדפדפן באפליקציה. אפשר לפתוח את הדף הזה ישירות באפליקציה, כמו שמוצג באיור 1.
הבחירה בין כרטיסיות מותאמות אישית לבין WebViews היא החלטה ארכיטקטונית חשובה שמשפיעה על מהירות הפיתוח, על חוויית המשתמש ועל מידת השליטה שלכם בממשק המשתמש.
השוואה מהירה
אתם יכולים להיעזר בטבלה הבאה כדי להחליט איזה כלי מתאים לצרכים שלכם:
| תכונה | תצוגת האתר | כרטיסיות מותאמות אישית |
|---|---|---|
| תרחיש שימוש ראשי | פיתוח אפליקציות היברידיות שבהן האינטרנט הוא התוכן העיקרי או התומך, הצגת מודעות לרשת המדיה, קמפיינים לקידום אפליקציה או דפי תנאים והגבלות. | הצגת תוכן מאתרים חיצוניים (כמו כתבות או דפי מוצרים). |
| רכיב אינטראקטיבי | מלא. זהו רכיב View שאפשר למקם בכל מקום. אתם שולטים בכל ממשק המשתמש שמסביב. |
מוגבלת. אתם יכולים לעצב את צבע סרגל הכלים ולהוסיף כמה פעולות בהתאמה אישית. |
| נתונים וסשנים | בארגז חול. הוא לא משתף קובצי Cookie או פרטי התחברות עם הדפדפן הראשי של המשתמש. | השיתוף בוצע. הוא משתמש בסשן של דפדפן ברירת המחדל של המשתמש, כולל קובצי Cookie וסיסמאות שמורות. |
| גשר בין אפליקציה מקורית לאתר | כן. אתם יכולים להשתמש ב-JavaScript Bridge כדי ליצור תקשורת דו-כיוונית עמוקה בין תוכן מהאינטרנט לבין קוד של אפליקציית נייטיב. | מוגבלת. אפשר להשתמש ב-method window.postMessage() כדי להעביר מחרוזות בסיסיות. |
| המאמץ הנדרש מהמפתחים | גבוהה. אתם צריכים לנהל בעצמכם את מחזור החיים, הניווט והביצועים. | נמוכה. אפשר להטמיע אותו באמצעות כמה שורות קוד בלבד. |
תצוגת האתר
WebView היא תצוגה שמאפשרת להפוך דפי אינטרנט לחלק בלתי נפרד מהפריסה של האפליקציה. הוא יעיל, אבל קצת יותר מורכב לטיפול בהשוואה לכרטיסיות מותאמות אישית.
WebView יכול לטעון תוכן מהאינטרנט מרחוק או באופן מקומי, להריץ JavaScript ולאפשר תקשורת דו-כיוונית בין התוכן מהאינטרנט לבין קוד אפליקציית הנייטיב. מה אפשר לעשות עם WebView
אתם יכולים גם להשתמש ב-WebView כדי להציג אפליקציית אינטרנט או דף אינטרנט כחלק מהאפליקציה שלכם. לדוגמה, הסכם משתמש קצה שאתם צריכים לעדכן מדי פעם. מידע נוסף זמין במאמר פיתוח אפליקציות אינטרנט ב-WebView.
למה כדאי לבחור ב-WebView
הנה כמה תרחישים שבהם WebView מתאים:
- אפליקציות היברידיות: אתם מפתחים אפליקציה שבה תוכן מהאינטרנט ורכיבים מקוריים (כמו סרגל ניווט או כפתור פעולה צף) פועלים זה לצד זה.
- תוכן מאינטראקציה ישירה (First-Party): התוכן מהאינטרנט הוא חלק מרכזי ואינטראקטיבי בחוויית השימוש באפליקציה, כמו עורך מסמכים או אזור לעיצוב.
- שליטה מלאה ברכיב אינטראקטיבי: אתם צריכים לשנות את התוכן של דף האינטרנט עצמו או להוסיף שכבת-על של רכיבי ממשק משתמש מקוריים מעליו.
- ניתוח מעמיק: אתם צריכים תובנות מפורטות לגבי התעניינות המשתמשים והפעילות שלהם ב-WebView.
היתרונות והחסרונות העיקריים
הנה כמה שיקולים מרכזיים שכדאי להביא בחשבון כשמשתמשים ב-WebView:
- ביצועים: WebView יכול לצרוך הרבה זיכרון. אם לא מנהלים אותו בזהירות, עלולות להיווצר בעיות בביצועים או שגיאות ANR (האפליקציה לא מגיבה).
- אבטחה ותחזוקה: אתם אחראים על הקשחת האבטחה וניהול מחזור החיים. זה כולל ניהול של שמירת המצב בתהליך היצירה מחדש באמצעות
WebViewCompat.saveState(), תוך שמירה על מגבלת העסקאות של 1MB במצב השמור של Android. עם זאת, עדכוני WebView מתפרסמים באופן גלובלי דרך Google Play, כך שאתם לא צריכים לדאוג שהמנוע הבסיסי יתיישן.
כרטיסיות מותאמות אישית
כרטיסיות בהתאמה אישית הן בחירה מצוינת להפניית משתמשים לכתובות URL חיצוניות, כי הן מספקות חלון דפדפן מהיר, מאובטח וידידותי למשתמש שמופיע מעל האפליקציה.
למה כדאי לבחור בכרטיסיות בהתאמה אישית
הנה כמה תרחישים שבהם כרטיסיות מותאמות אישית מתאימות:
- קישורים חיצוניים: כשמשתמש לוחץ על קישור לאתר שלא בבעלותכם, כרטיסיות בהתאמה אישית משאירות אותו בהקשר של האפליקציה שלכם ומספקות פונקציונליות דפדפן מלאה.
- קלות השילוב: זו הדרך הפשוטה ביותר להפעיל חוויית גלישה מוטמעת.
- מצב משותף: מכיוון שהיא משתפת קובצי Cookie עם דפדפן ברירת המחדל של המשתמש, המשתמשים לא צריכים להיכנס שוב לאתרים שכבר ביקרו בהם.
- כניסה באמצעות צד שלישי: הם מתאימים לתהליכי כניסה באמצעות צד שלישי (כמו "כניסה באמצעות חשבון Google" או "כניסה באמצעות פייסבוק"), כי הדפדפן מטפל בפרטי הכניסה בצורה מאובטחת.
רוב הדפדפנים תומכים בכרטיסיות בהתאמה אישית, אבל חלקם מציעים יותר אפשרויות להתאמה אישית מאחרים. מידע נוסף זמין במאמר תמיכה בדפדפנים.
שימוש בתוכן מהאינטרנט ב-Jetpack Compose
כשמפתחים באמצעות Jetpack Compose, אפשר להשתמש גם בכרטיסיות בהתאמה אישית וגם ב-WebView:
- כרטיסיות מותאמות אישית: מכיוון שכרטיסיות מותאמות אישית משתמשות ב-
Intent, אפשר להפעיל אותן מכלContextבפונקציות של Compose, וכך לשלב אותן בצורה חלקה. - WebView: ל-Compose עדיין אין רכיב WebView מובנה, אז תצטרכו להשתמש ב-
AndroidViewכדי להטמיע WebView רגיל בפריסה.
מקורות מידע נוספים
כדי לפתח דפי אינטרנט למכשירים עם Android באמצעות ממשקי API של WebViews או כרטיסיות מותאמות אישית, אפשר לעיין במסמכים הבאים:
- הטמעת תוכן מהאינטרנט באפליקציה כתוכן ראשי או כתוכן תומך
- מאמרי העזרה של ה-API: WebView
- סקירה כללית של כרטיסיות מותאמות אישית
- סקירה כללית על פעילויות Trusted Web
- ניהול יעיל של מצב WebView
- תמיכה בדפדפנים