Εγκαταστάσιμη εφαρμογή (PWA)
cMind εγκαθίσταται σε ένα τηλέφωνο ή desktop σαν ένα εγγενής εφαρμογή — home-screen εικονίδιο, αυτόνομη παράθυρο, κλείστε, και μια φιλική offline σελίδα. Είναι κινητή-πρώτα και πλήρως αποκριτικό. δείτε ui-guidelines.md.
Τι "εγκαταστάσιμη" σημαίνει εδώ — και η ειλικρινής όριο
Blazor Διακομιστή αποδίδει μέσα ένα ζωντανό SignalR κύκλωμα, έτσι η εφαρμογή δεν μπορώ να τρέξουν πλήρως offline. Τι το PWA παραδίδει:
- Εγκαταστάσιμη — έγκυρο ιστό δείλιαση + εικονίδια, έτσι πρόγραμμα περιήγησης προσφορά Εγκατάστασης / Προσθήκη σε Home Screen.
- Εφαρμογή-κοχύλι cached — την υπηρεσία εργάτης caches στατικό περιουσιακά στοιχεία (CSS, εικονίδια, δείλιαση) και δείχνει ένα offline σελίδα όταν η δίκτυο πέσει, αντί ενός πρόγραμμα περιήγησης σφάλμα.
- Εγγενής αίσθημα — αυτόνομη εμφάνιση, branded θέμα-χρώμα/κατάσταση μπάρα, εφαρμογή εικονίδιο, iOS home-screen εικονίδιο.
Αυτό κάνει δεν παρέχουν offline ενεργοποίησης — αυτό θα απαιτούν Blazor WebAssembly (μια ξεχωριστή μέλλοντα τροχιά). Μην υπόσχονται offline χρήση του ζωντανό δυνατότητες.
Κομμάτια
| Κομμάτι | Όπου |
|---|---|
| Δείλιαση (δυναμικό, branded) | Web/Endpoints/PwaEndpoints.cs → GET /manifest.webmanifest (ανώνυμος) |
| Εικονίδια (192, 512, 512-maskable, apple-touch-180) | Web/wwwroot/icons/ |
| Υπηρεσία εργάτης (εφαρμογή-κοχύλι) | Web/wwwroot/service-worker.js |
| Offline fallback σελίδα | Web/wwwroot/offline.html |
| Εγγραφή + iOS ετικέτες + εγκατάστασης-εμφάνιση κατάγραφο | Web/Components/App.razor |
| Διαδρομή σταθερές | Core.Constants.PwaRoutes |
Δείλιαση
Εξυπηρετούμενο δυναμικά από BrandingOptions έτσι ένα reseller προϊόν όνομα, χρώματα και εικονίδια φέρνουν σε το
εγκατεστημένο εφαρμογή: όνομα/σύντομη_όνομα από ProductName, περιγραφή, θέμα_χρώμα από AppBarColor,
φόντο_χρώμα από BackgroundColor, εμφάνιση: αυτόνομη, και το εικονίδιο σύνολο (incl. ένα maskable
512 για ένα καθαρό Android εικονίδιο). Ανώνυμος — η εγκατάστασης ερώτηση πρέπει εργασία πριν υπογραφή-σε.
Υπηρεσία εργάτης
Εφαρμογή-κοχύλι μόνο. Αυτό ποτέ intercepts ο Blazor κύκλωμα (/_blazor), πλαίσιο (/_framework), ή
SignalR hubs (/hubs) — αυτά είναι πάντα δίκτυο. Πλοήγησης είναι δίκτυο-πρώτα με το offline σελίδα
ως fallback. στατικό περιουσιακά στοιχεία (/css, /icons, /_content) είναι κρυφή-πρώτα με φόντο revalidate.
Εγγεγραμμένη με updateViaCache: 'none' έτσι εργάτης ενημερώσεις εφαρμόζω αξιόπιστα. Κρυφές είναι versioned
(cmind-κοχύλι-v<n>) — bump σε κοχύλι αλλαγές.
iOS
iOS ignores δείλιαση εικονίδια/κλείστε, έτσι App.razor επίσης εκπέμπει apple-touch-icon και
apple-κινητό-ιστό-εφαρμογή-* μετα ετικέτες. iOS έχει χωρίς beforeinstallprompt. χρήστες εγκατάστασης μέσα Safari Προσθήκη σε
Home Screen. beforeinstallprompt είναι καταγραφή σε window.deferredInstallPrompt σε Chromium/Android
για ένα προσαρμοσμένο εγκατάστασης affordance.
Δοκιμές
- E2E —
E2ETests/PwaTests.cs: δείλιαση εξυπηρετούμενο μεεφαρμογή/δείλιαση+json, δεν-κενό εικονίδια incl. α maskable ένα,εμφάνιση: αυτόνομη,apple-touch-iconσυνδέδεται, και την υπηρεσία εργάτης εγγράφεται + ενεργοποιεί.MobileLayoutTests/MobileDialogTestsκάλυπτος τα κινητό κοχύλι το PWA εγκαθίσταται.