Android: E-Mail-Links öffnen die Mail-App, das Kopfvideo war kein Fehler - #282
Merged
Merged
Conversation
…ding them Android's WebView cannot load either scheme and replaced the article with its own net::ERR_UNKNOWN_URL_SCHEME page. shouldStartReaderLoad sends the two schemes onNavigate lets through to openExternal and tells the WebView not to load them, the native counterpart of readerClickAction on the web. The header video reported in the same issue was not a defect: an emulator with animations off reports prefers-reduced-motion, and the reader shows the still on purpose. TROUBLESHOOTING.md now says so. Refs #271
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Worum es geht
Bei der Prüfung von #271 auf einem Android-Handy (Emulator) sind zwei Punkte aufgefallen:
Was sich ändert
E-Mail-Adressen und Telefonnummern: Ein Tipp darauf gibt die Adresse jetzt an das Telefon weiter, also an die Mail-App oder die Telefon-App. Der Artikel bleibt dabei stehen, genau an der Stelle, an der man war. Ist keine passende App installiert, passiert einfach nichts, es gibt keine Fehlerseite mehr. Im Web war das schon mit #280 so, jetzt verhält sich die Android-App gleich.
Das Video: Hier gab es nichts zu reparieren. Auf dem Test-Emulator waren die Animationen des Systems ausgeschaltet. Android behandelt das wie die Einstellung „Animationen entfernen“, also wie den Wunsch nach weniger Bewegung. Die App zeigt dann absichtlich ein Standbild statt des Videos, so wie es gewollt ist. Mit eingeschalteten Animationen läuft das Video, im hellen und im dunklen Modus. Damit das beim nächsten Test niemand wieder für einen Fehler hält, steht es jetzt in
TROUBLESHOOTING.md.Das Video läuft, hell (zwei Aufnahmen im Abstand von drei Sekunden):

Das Video läuft, dunkel:

Mit ausgeschalteten Animationen zeigt die App mit Absicht das Standbild, beide Aufnahmen sind gleich:

E-Mail-Adresse im Artikel „Lagebericht Brandherd Desinformation“: vor dem Tipp, direkt danach (Gmail öffnet sich) und nach dem Zurückgehen (der Artikel ist noch da, an derselben Stelle):

iOS ist weiter nicht geprüft, dafür fehlt wie bei #262 ein Mac mit vollständigem Xcode. Deshalb bleibt #271 offen.
Refs #271
Technische Notizen
E-Mail/Telefon.
onShouldStartLoadWithRequestgab fürmailto:/tel:den Wert vononNavigatezurück, undclassifyReaderLinksortiert beide Schemata alsallowein. Die Android-WebView hat die Adresse dann selbst geladen und konnte es nicht. Neu istshouldStartReaderLoad(target, onNavigate, handOff)inapps/mobile/src/lib/articles/readerNavigation.ts, das native Gegenstück zureaderClickAction: WasonNavigatedurchlässt undmailto:odertel:ist, geht anhandOff(openExternal, das die Ablehnung vonLinking.openURLabfängt und loggt), und die WebView bekommtfalse.classifyReaderLinkundonNavigateinartikel.tsxbleiben unverändert, damit der Web-Weg aus #280 ('let-through') weiter funktioniert. Tests inapps/mobile/__tests__/reader-navigation.test.ts.Auf dem Emulator (API 36, WebView 152.0.7977.88) gemessen: Nach dem Tipp zeigt logcat
START u0 {act=android.intent.action.VIEW dat=mailto:… cmp=com.google.android.gm/.ComposeActivityGmailExternal}, und nach „Zurück“ istorg.correctiv.app/.MainActivitywieder oben, mit dem Artikel an derselben Stelle. Auf dem Emulator ist Gmail vorinstalliert, deshalb öffnet sich Gmail statt einerActivityNotFoundException. Der Fall ohne Mail-App ist also nicht gemessen, er läuft aber durch denselbencatchinopenExternal, den der Rest der App schon nutzt.Video. Gemessen mit demselben Release-Build und demselben Artikel („Das Russische Haus“), nur
settings put global animator_duration_scalegeändert: Bei 0 unterscheiden sich zwei Aufnahmen im Abstand von drei Sekunden im Bereich des Kopfbilds um 0 Pixel, bei 1 bewegt sich das Video, hell wie dunkel. Chromium auf Android meldet beianimator_duration_scale0prefers-reduced-motion: reduce, undREADER_LAYOUT_CSSblendet dann das Video aus und das Bild ein, während dasmediaan der<source>den Download verhindert. Dasmedia-Attribut, die CSP undloadDataWithBaseURLwaren damit nicht die Ursache und sind unverändert. Die Testseite im Chrome des Emulators lief, weil sie keine Media Query hatte. Die Tour-Skripte stellen die Skalierung vorher auf 1 (quiet_system_ui) und danach zurück, ein Emulator mit 0 ist also ein normaler Zustand. Die direkte Abfrage vonmatchMediain der App-WebView ist nicht gemacht (Release-Build, kein Debugging der WebView); der Schluss beruht auf dem Vorher-Nachher mit nur dieser einen Einstellung.heroHtmlund der Web-Reader sind nicht verändert, deshalb habe ich den Web-Export nicht neu gebaut.🤖 Generated with Claude Code