it-swarm.com.de

Universelle Links mit Weiterleitungen, die in iOS nicht funktionieren

Unternehmensdomänenlinks landen in der iOS-App. Links mit Weiterleitungen über MailChimp zur Unternehmenswebsite von der E-Mail-Website gelangen in die iOS-App.

Links, die über den MailChimp-Tracking-Link, der in der Mail-App (Mail, Gmail usw.) getippt wurde, zur Website der Unternehmensdomäne umleiten, landen in Safari auf der Website des Unternehmens.

Gibt es eine Problemumgehung, um MailChimp-E-Mail-Links mit Umleitung als universelle Links zu verwenden und die iOS-App aufzurufen?

5

Ich habe tatsächlich eine Problemumgehung dafür entwickelt.

Wir haben eine App erstellt, die es einem Benutzer ermöglicht, sich durch Generieren eines magischen Zugriffslinks anzumelden. Der Benutzer lädt die App herunter und installiert sie, gibt seine E-Mail-Adresse ein und der Server sendet ihm eine E-Mail mit einem Link in Form von: https://www.example.com/app/accesslink/ {{tokenHere }}

Wir haben eine AASA-Datei erstellt und diese beispielsweise auf unsere Domain (www.example.com) hochgeladen :) https://developer.Apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html

Die meisten Benutzer könnten einen Zugangslink erstellen, diesen antippen und die App würde geladen. Wir hatten Handler in der App, die das Token abholten und authentifizierten usw.

Das Problem trat auf, als einige E-Mail-Anbieter den Zugriffslink in der E-Mail umschrieben. Dies geschah insbesondere für Unternehmensbenutzer, auf denen URL-Blocker installiert waren.

Um dies zu umgehen, haben wir eine Umschreiberegel auf dem Server erstellt, um www.example.com/app/accesslink/{{anythingHerer}} in eine statische Datei auf dem Server mit dem Namen '404accesslink.html' umzuschreiben (der Dateiname ist arbetary, der Server) war in diesem Fall asp.net IIS). Wir haben dann die '404accesslink.html' wie folgt bearbeitet, um die folgenden Meta einzuschließen:

<script>
    document.writeln('<meta name="Apple-iTunes-app" content="app-id={{APP_ID_HERE}}, app-argument=' + document.location.href + '">');
</script>

Da die Datei über eine Neuschreibung bereitgestellt wurde, stimmte der Wert location.href genau mit dem Zugriffslink überein. Dies brachte iOS dazu, die App zu öffnen und den Pfad dazu zu übergeben. Wir könnten es dann wie gewohnt im Handler abholen und den Benutzer authentifizieren.

Wir haben einige einfache Anweisungen für den Fall geschrieben, dass das Öffnen der App nicht automatisch erfolgt und die Seite angezeigt wird (obwohl dies in unseren Tests nicht der Fall war).

<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  <script>
    document.writeln('<meta name="Apple-iTunes-app" content="app-id=XXXXXXXXXX, app-argument=' + document.location.href + '">');
  </script>
  <style>
    body {
        padding-top: 5%;
        color: #FFF;
        font-size: 1em;
        font-family: Arial, Helvetica, sans-serif;
        text-align: left;
        background: #00338D;
        margin: 50px;
    }
    h1 {
        font-weight: normal;
        font-size: 1.8em;
    }
    a {
        color: #FFF;
        font-weight: bold;
        text-decoration: none;
    }
  </style>
  <title>XXXXXXXXX</title>
  <body>
    <h1>Please select 'Open' in the app banner displayed at the top of this page to open the app with your access link.</h1>
    <p>If you do not see the app banner above then please close your browser and sign into the app using your email address and the password you used to register for the event.</p>
    <p>If you do not know your password then you can <a href="https://XXXXXXXXXXXXX/account/mobileforgot/">reset it by following this link</a>.</p>
    <p>Thank you,</p>
    <p>XXXXXXXXXXXXX team</p>
  </body>
</html>

Das Meta wäre wahrscheinlich besser, wenn es serverseitig eingestellt und gerendert wäre, als wenn es clientseitig von JS verwendet würde, aber es hat trotzdem funktioniert.

Bevor dies getan wurde: Wenn ein System den App-Link neu geschrieben/eingepackt hat, war die App nicht mit der neuen URL verknüpft, und als der Benutzer auf die URL tippte, wurde sie in Safari geöffnet.

Nachdem dies erledigt war: Wenn ein System den App-Link neu geschrieben/verpackt hat, war die App nicht mit der neuen URL verknüpft und als der Benutzer auf die URL tippte, wurde sie in der App geöffnet.

10
Ben Edge

Universelle Links basieren auf der tatsächlichen URL des Links, der geöffnet wird. Dies bedeutet, dass Universal Links nicht funktionieren, wenn Sie den Link in eine Umleitung einschließen (wie MailChimp).

Um dies zu umgehen, müssen Sie das Klick-Tracking deaktivieren bei MailChimp. Möglicherweise funktioniert es jedoch nicht in jeder App (z. B. Google Mail), wenn diese App keine universellen Links unterstützt.

Branch.io (vollständige Offenlegung: Ich bin Mitglied des Branch-Teams) hat mit einigen der größeren E-Mail-Plattformen zusammengearbeitet, um dieses Problem zu beheben und sowohl Universal Links als auch Click-Tracking zu aktivieren. Bis dahin hat MailChimp dies jedoch nicht getan interessiert gewesen. Sie können sie gerne wissen lassen, dass dies etwas ist, das Sie gerne sehen würden!

5
Alex Bauer

Nein, das ist unmöglich.

Die Ressource, die mit verknüpften Links funktioniert, kann eine Apple-App-Site-Zuordnungsdatei im öffentlichen Bereich sein. Mail-Schimpanse hat nicht.

https://developer.Apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html

Das Hinzufügen von Unterstützung für universelle Links ist einfach. Sie müssen drei Schritte ausführen:

Erstellen Sie eine Apple-App-Site-Zuordnungsdatei, die JSON-Daten zu den URLs enthält, die Ihre App verarbeiten kann. Laden Sie die Apple-App-Site-Zuordnungsdatei auf Ihren HTTPS-Webserver hoch. Sie können die Datei im Stammverzeichnis Ihres Servers oder im bekannten Unterverzeichnis ablegen. Bereiten Sie Ihre App für universelle Links vor.

0
LLIAJLbHOu