So öffnen Sie eine native iOS-App über eine Webanwendung
Zusammenfassung ich habe eine app mit einem korrekt funktionierenden URL-Schema an, ich möchte das starten von einer web-app gespeichert, die Sie auf dem home-Bildschirm, und die normalen JavaScript-redirect-Methoden nicht zu funktionieren scheinen.
Details ich versuche zum erstellen einer iOS web app geöffnet werden, um in den Vollbild-Modus über einen link gespeichert, der auf dem Home-Bildschirm. Die web-app zum öffnen eines bestimmten nativen app. Ich habe schon registriert das url-Schema für die native app und bestätigt, dass es richtig funktioniert - ich kann öffnen Sie die native app durch Eingabe der Regelung direkt in meine Safari-Adressleiste, zum Beispiel. Ich kann auch das öffnen von anderen Anwendungen, die mit der +openURL:
Methode der UIApplication
. Ich möchte auch öffnen Sie Sie mit bestimmten Argumenten aus eine native web-app, können Hinzugefügt werden, um den home-Bildschirm.
Was ich versuche zu tun, ist die Verwendung von JavaScript, wie also innerhalb der nativen app:
window.location = "myapp://myparam";
Bei der Verwendung dieses Codes innerhalb der web-app bekomme ich die Warnmeldung:
Kann nicht Geöffnet werden"myWebAppName - myWebAppName konnte nicht geöffnet werden. Die
Fehler war "Diese URL kann nicht angezeigt werden".".
Diese javascript-Ausführung in Safari korrekt funktioniert. Bekomme ich das gleiche Ergebnis mit window.location.replace("myapp://myparam")
.
Den html-Code für die web-app ist:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>untitled</title>
<meta name="generator" content="TextMate http://macromates.com/">
<meta name="author" content="Carl Veazey">
<!-- Date: 2012-04-19 -->
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta names="apple-mobile-web-app-status-bar-style" content="black-translucent" />
</head>
<body>
<script type="text/javascript" charset="utf-8">
if (window.navigator.userAgent.indexOf('iPhone') != -1) {
if (window.navigator.standalone == true) {
window.location = "myapp://myparam";
} else {
document.write("please save this to your home screen");
};} else {
alert("Not iPhone!");
document.location.href = 'please-open-from-an-iphone.html';
};
</script>
</body>
</html>
Was mache ich hier falsch? Ich bin ziemlich unerfahren mit javascript und mobilen web, so dass ich vermute, ich bin nur etwas fehlt offensichtlich.
InformationsquelleAutor der Frage Carl Veazey | 2012-04-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein code funktioniert, wenn die in mobile safari aber NICHT, wenn Ihr aus ein Lesezeichen auf dem iOS-desktop. Nie versucht es so vor, aber das ist das Problem. Wenn ich einfach die JS zu
Es funktioniert im browser, aber wenn die Lesezeichen-es schlägt fehl. Es könnte etwas zu tun haben mit, wie die url wird geladen, wenn seine Lesezeichen, da ist kein Chrom? Meine Vermutung ist, dass apple nicht will, gebucht markieren Sie Seiten für den Zugriff auf lokale apps. Auch habe ich bemerkt, dass wenn ich ein Lesezeichen zu einer lokal gehosteten Seite, das funktioniert in mobile safari, ich kann es nicht erhalten, zu laden über Lesezeichen. Es ist wirklich seltsam....
Beste Empfehlung, die ich für Sie haben, ist, um es
statt
Diese Weise wird es auf dem home-Bildschirm, aber leider laden mit der chrome. Das ist die einzige Lösung, die ich denken kann.
InformationsquelleAutor der Antwort AJak
Wenn Sie öffnen müssen, um eine iOS-Anwendung, wenn es installiert ist und auch bewahren wollen Ihrer Seite-Funktionalität, die
location.href = 'myapp://?params=...';
wird nicht helfen, da wennmyapp://
nicht registriert ist, die Umleitung führt Benutzer nicht erreichbares Ziel.Die sicherste Wette zu sein scheint, mit einem
iframe
. Der folgende code öffnet eine iOS-app, wenn es installiert ist und wird nicht zu einem Fehler führen, wenn es nicht (auch wenn es vielleicht alert einen Benutzer, dass die Seite nicht erreicht werden konnte, wenn die app nicht installiert ist):InformationsquelleAutor der Antwort Andrew Sklyarevsky
Versuchen, wie diese:
Die index-Seite
den receiver.php Seite:
InformationsquelleAutor der Antwort T.Todua
Den oben leitet den browser zu der eingegebenen URL (http://example.com/) wenn das Gerät mit einem iPod oder iPhone. Fügen Sie das Skript an die Spitze der web-app, stellen Sie sicher, dass Sie speichern Sie es als eine
.php
Datei anstatt.html
.Quelle:
http://www.schiffner.com/programming-php-classes/php-mobile-device-detection/
InformationsquelleAutor der Antwort Ryan Brodie