2017-02-20 1 views
0

Ich habe eine Webseite, wo ich ADAL.JS implementieren.ADAL.JS und Offline-Web-App

Wenn Sie die Seite über das Internet durchsuchen, funktioniert es perfekt; aber wenn ich versuche, es auf einem iPhone zu sehen, und ich habe es als eine Verknüpfung auf dem Desktop mit der Schaltfläche auf der Startseite gespeichert, Dinge gehen drunter und drüber.

Die Startseite (index.html) wird korrekt mit dem Meta-Tag apple-mobile-web-app-capable angezeigt; Wenn die Authentifizierung jedoch aufgerufen wird, werde ich in ein echtes Browserfenster geleitet. Nach der Umleitung auf index.html bin ich immer noch im separaten Browserfenster und nicht in der Web-App-Ansicht.

Schließlich möchte ich dies als eine Offline-Website mit allen Seitenfunktionalität in der Ansicht von apple-mobile-web-app-capable ausgeführt haben. Irgendwelche anderen Ideen, wie dies zu implementieren ist, werden geschätzt.

Vielen Dank im Voraus.

Antwort

0

Dies ist eines der großen Probleme, die derzeit in iOS-Webapps bestehen. Jede Verknüpfung oder Umleitung öffnet sich in einem neuen Fenster. Sie können es ändern window.location.href mit JavaScript reparieren.

+0

Die seltsame Sache ist, dass wenn ich eine Datei namens index.html habe und ein window.location.href zu www.google.com ausführe, bin ich immer noch in der Webapp. Wenn ADAL mich jedoch auf die AD-Anmeldeseite über ein window.location umleitet, befindet sich die ADAL-Anmeldeseite in einem separaten Fenster. Wenn Sie sagen, beheben Sie es durch Ändern von window.location.href mit JS..wie schlagen Sie vor, dass ich das tue ... den ADAL JS-Code aktualisieren, um die href-Eigenschaft anstelle von window.location zu verwenden? – Admiralman

+0

Adal.js bietet einen Weg, ohne sich selbst zu ändern. Ich denke, das folgende Schreiben in _your_ script würde es tun (ersetzen Sie% ac% durch Ihre AuthentificationContest-Variable): '% ac% .config.displayCall = Funktion (URL) { if (urlNavigate) { this.info (' Navigieren Sie zu: '+ urlNavigate); window.location.href = urlNavigate; } else { this.info ('Navigate URL ist leer'); } } ' – Siphalor

+0

Bitte sehen Sie meine andere Antwort ... versuchte, es zu diesem Kommentar aber zu lange – Admiralman

0

Scheint etwas zu fehlen ... Ich bekomme auf urlNavigate nicht definierten Fehler ... Vorschläge?

alert('Running Auth'); 

online = navigator.onLine;

+0

Mein Fehler: Der Parameter der Funktion sollte" urlNavigate "anstelle von" URL "sein. – Siphalor

+0

Meine Antwort unten hinzugefügt. – Admiralman

0

Ok ... Ich machte die Änderung und der Fehler ist weg, aber ich verstehe nicht, wie dies das Problem ansprechen soll. Wenn ich meine Seite zu meinem IPhone-Startbildschirm hinzufüge (https://xxxxx.azurewebsites.net/app/test.html) und dann auf die Kachel klicke, wird ich zur Seite test.html weitergeleitet. Auf dieser Seite gibt es eine Auth-Funktion, die adal.js benutzt und mich zu "https://login.microsoftonline.com/xxx.onmicrosoft.com/oauth2 ..." bringt. Dies wird im Rahmen meiner IOS-Web-App angezeigt und enthält mein Konto und die Option Anderes Konto verwenden. Ich klicke auf mein Konto oder wähle die Option Anderes Konto verwenden und ich werde auf eine andere Seite weitergeleitet, die in Safari geöffnet ist.

+0

Ich kenne das ein ähnliches Problem mit meiner eigenen iOS Webapp. Du kannst keine fremden Webseiten kontrollieren, daher kann ich dir momentan nichts mehr vorschlagen. Wenn ich einen Weg kenne und es in meine Webapp implementieren kann, werde ich es dich wissen lassen. – Siphalor

+0

Bitte tun. Hast du Auth0 benutzt? Ist das möglicherweise die Antwort? – Admiralman

Verwandte Themen