Mit handleOpenURL mit Benutzerdefinierte URL-Schema in Cordova
Bin ich, eine app zu entwickeln und haben fast alles herausgefunden, außer für das benutzerdefinierte URL-Schema plugin(https://github.com/EddyVerbruggen/Custom-URL-scheme). Ich habe erfolgreich das plugin installiert und eingerichtet, eine benutzerdefinierte URL-Schema von signsrestaurantandbar. Also wenn ich mit signsrestaurantandbar://meine-Anwendung wird geöffnet. Das problem, das ich bin vor ist der Umgang mit der URL. In der readme-Datei, es sagt, ich kann die Funktion handleOpenURL(URL) für diese, aber ich bin immer noch Probleme versucht zu laden einer bestimmten Seite innerhalb der app.
Hier ist, was ich versucht habe:
function handleOpenURL(url) {
var strValue = url;
strValue = strValue.replace('signsrestaurantandbar://','');
window.location.href = strValue + ".html";
}
Lege ich diese in mein index.html Seite... obwohl es öffnen sollte page.html zum laden signsrestaurantandbar://Seite, er macht es nicht richtig. In meinem chrome-Konsole, es sagt, dass es geladen Sie die Seite, aber es wird leer angezeigt, ohne Fehler und dies geschieht nur einmal. Wenn ich versuche zu laden signsrestaurantandbar://- Seite beim zweiten mal ist es einfach nur lädt die app.
Ich würde schätzen, irgendwelche Tipps, wie zu nähern, laden bestimmte Seiten verwenden die benutzerdefinierte URL-Schema an.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie sicherstellen, dass Sie die Liste Ihrer "custom" - URL in Ihrem
CSP
.Hinzugefügt 2016-02-11: HINWEIS: IHRE APP IST JETZT UNSICHER. ES IST BIS ZU IHNEN, SICHERN SIE IHRE APP.
Es würde in etwa so Aussehen:
In der Regel die wildcard-Einstellung (
*
) verarbeiten kann die meisten Anwendungen, aber nicht Ihr "custom" - Protokoll.HINWEIS: Wildcard-Einstellung, die das Potenzial haben, halten Sie Ihre app aus dem "app-stores".
Möglicherweise müssen Sie auch hinzufügen, um Ihre
config.xml
Diese whitelist Arbeitsblatt soll helfen.
WIE die Cordova/Phonegap die whitelist-system
Sollten Sie auch Lesen Sie die whitelist matrix, vor allem die sectionon
<allow-intent (...) />
- viel Glück<allow-intent>
und der CSP zusammen, aber kann immer noch nicht die Funktion aufgerufen.<script>
- tag innerhalb der HTML-Körper.Hinzufügen von globalen handleOpenURL Funktion mit diesem code:
Sehen Cordova Benutzerdefinierte URL-Schema Handhabung.
Beachten Sie, dass wenn Sie
alert
in dieser Funktion wird Ihre app hängen würde:Der Vorteil dieser Methode ist, Sie brauchen nicht zu ändern Content Security Policy mit
Content-Security-Policy
meta-tag.document.addEventListener('deviceready',function (){...
aber hat nicht funktioniert.deviceready
event-handler. Wie testen Sie, dass IhrehandleOpenURL
aufgerufen wurde? Ich habe bemerkt, dass Chrome Developer tools nicht melden zuverlässig für mich.<div>urlscheme</div>
beiindex.html
und mitjQuery
ersetzen Sie den texturlscheme
mit der url, nur um zu sehen, ob es funktioniert. aber bisher ohne Ergebnis.