Es gibt einen Link in meiner app, wenn darauf geklickt wird, wird eine ics Kalenderereignisdatei erzeugt und zurückgegeben von der Steuerung als Action/Datei:App gehen zu leeren Bildschirm nach der Rückkehr von ‚öffnet heruntergeladene ics-Datei im Browser‘
return File(memoryStream, "text/calendar", "calendar.ics");
der Link wie folgt aussieht:
<a href="/controllerName/MethodName?param=xyz">link</a>
erwarten Ergebnis: klicken Sie auf den Link, wird Browser mit der Datei heruntergeladen geöffnet. Bei der Rückkehr zur App bleibt auf dem gleichen Bildschirm in der App.
Dies funktioniert wie erwartet in iOS-App, Browsern in iOS und Android, aber nicht in Android-App. In Android-App, klicken Sie auf den Link, der Browser ist mit der heruntergeladenen Datei geöffnet, aber wenn zur App zurückkehren, es eine leere Seite anzeigen, muss ich zweimal auf Zurück-Taste klicken, um die alte Seite zu erreichen. Nicht sicher warum? Scheint, als ob es eine Navigation wegen der href macht?
die auf leere Seite in der App navigiert zu vermeiden, änderte ich <a>
zu <div>
und href=""
-ng-click=syncCalendar()
, und verwenden Sie $http.post()
die Antwort vom gleichen Controller zu erhalten, die die Datei oben zurückgibt. Die Antwort, die ich bekomme, ist der Inhalt der Datei. Wenn ich sie an der Konsole anmelde, hat sie den richtigen Inhalt und zeigt Klartext in der Konsole an. Und die App navigiert nicht mehr zur leeren Seite. Dies ist der Inhalt der response
:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ddaysoftware.com//NONSGML DDay.iCal 1.0//EN
BEGIN:VEVENT
DESCRIPTION:...............
DTEND:20161022T110000
DTSTAMP:20161020T145537Z
DTSTART:20161022T104500
LOCATION:123 Test Drive\nNY\, NY 123456
SEQUENCE:0
SUMMARY:xyz
UID:123-56h-78di-9dfgh
END:VEVENT
END:VCALENDAR
Dann öffne ich die Datei aus dem Javascript in meiner app mit:
window.open("data:text/calendar;charset=utf8," + escape(response));
Dies auch in beiden Browsern in iOS und Android funktioniert. Aber funktioniert nicht, wenn in Android App getestet. Der Browser wird nicht wie erwartet geöffnet. Nicht sicher, was ist das Problem, warum es funktioniert nur nicht in Android App?